码迷,mamicode.com
首页 > 编程语言 > 详细

spring bean定义

时间:2017-12-27 14:13:38      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:spring bean定义

  • id和name

    id有命名限制,比如必须以字母开头,在配置文件中id必须唯一

    name没有命名限制,在配置文件中可以有多个name一样的bean,getBean时返回最后定义的那个bean

    如果二者都没定义,例 <bean class="abc.a">, 默认以全限定类名作为bean名,getBean("abc.a");

    如果二者都没定义,并有多个<bean class="abc.a">,则第一个bean用getBean("abc.a")获取,第二个用getBean("abc.a#1")获取,以此类推。

  • 属性注入

    命名规则,要么前两个字母都大写,要么全部小写

    值为字面量时注意5个特殊字符&<>"',如果值中包含特殊字符,有两种解决办法,一种是<![CDATA[ ]]>,另一种是特殊字符替换,比如<替换为&lt;

    值为引用时可用<ref>元素,包含三个属性:bean(引用同一个容器或父容器的Bean)、local(只引用同一个配置文件的Bean)、parent(引用父容器的Bean)

    如果不用引用,也可以用内部Bean的配置方式,即Bean的定义在Property元素内,这个Bean只能为对应的外部Bean所用,不能用于其他Bean的引用

    null值,如果属性值想为null值,不能像这样<property name="abc"><value></value></property>,这样代表值为空字符串,应该为这样<property name="abc"><value><null/></value></property>

    properties与map类似,只是properties的键值只能是字符串

  • 构造函数注入

    配置项中最好加索引和类型,比如:<constructor-arg index="0" type="java.lang.String"> <value>abc</value></constructor-arg>,0代表第一个参数,type代表参数类型,这样可以精确定位用类中的哪个构造函数

  • 父子bean(集合合并)

    子bean可继承父bean的属性,父bean一般会设置abstract="true"(表示不需要实例化),子类中要写 parent="xxx" ,如果属性同名,子bean会覆盖父bean属性,如果想属性合并,比如父类有一个属性是set类型,子类也有一个属性是set类型,如果想属性合并,需要在对应属性中写merge="true"

  • 简化配置

  • 技术分享图片

    技术分享图片

    当然还可以更简洁,即引用p命名空间,格式p:属性名="xxx" ,p:属性名_ref="xxx".




    spring bean定义

    标签:spring bean定义

    原文地址:http://blog.51cto.com/2839840/2055038

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!