spring 3 bean配置--注入属性配置细节(1)

来源:互联网 发布:win10安装java没反应 编辑:程序博客网 时间:2024/05/16 06:42
1字面值:
   可以用字符串表示,可以通过value元素标签(如下)or   value属性注入
<constructor-arg index="2" type="int">
<value>30</value>
</constructor-arg>


      如果字面值包含特殊字符可以用<![ CDATA[ ] ]>包裹起来
  <constructor-arg  index="1" type="java.lang.String">
<value><![CDATA[<Shanghai!>]]></value>
</constructor-arg>
   注:CDATA是XML标记语言的语法成分,代表‘字符数据’Character Data也就说明你那代码不是HTML而是XHTML文档。
   CDATA标签中字符文本是不作为html被再次转义的。比如'& nbsp;'将不像其他地方那样被转换成空格。通常CDATA里面放一些‘一字不改的数据’,比如源代码,比如Javascript源码。
2  bean的引用
可以用property 的ref元素or ref属性建立bean之间的引用关系
  <bean id="person" class="mdd.study.beans.Person">
<property name="name" value="Tom"></property>
<property name="age" value="22"></property>
<property name="car" ref="car"></property>
</bean>
   也可以引用一个内部bean,内部bean不能够被外部bean引用,只能在内部使用


3  注入参数详解:null值和级联属性
可以使用<null/>元素, = =但其实是可以不赋值的
<property name="car" ref="car"></property>
<property name="car.price" value="300000"></property>
注意:属性需要初始化后才可以为级联属性赋值,和struts2不同,struts2会自动创建级联属性然后赋值


4  集合属性
spring中可以通过一组内置的xml标签(eg:<list>,<set>,<map>来配置集合属性)来配置集合属性。
配置list类型的属性,需要指定<list>标签,在标签里包含一些元素。可以用<value>指定简单的常量值,通过ref指定对其他bean的引用,还可以内置bean 
map通过<map>标签,里面可以使用多个<entry>作为子标签,每个条目包含一个键和一个值<>
使用<props>定义java.util.properties(hashtable的一个子类),该标签使用多个<prop>作为子标签,每个子标签必须定义key属性。
   使用list节点为list类型的属性赋值:
<bean id="person" class="mdd.study.beans.Person">
<property name="name" value="Tom"></property>
<property name="age" value="22"></property>
<property name="cars" >
<list>


    使用map节点及entry子节点为map类型的成员变量:
<bean id="person2" class="mdd.study.beans.Person2">
<property name="name" value="Rose"></property>
<property name="age" value="33"></property>
<property name="cars" >
<map>
<entry key="a" value-ref="car"></entry>
<entry key="b" value-ref="car2"></entry>
</map>
</property>
</bean>
<ref bean="car"/>
<ref bean="car2"/>
</list>
</property>
</bean>


5  使用utility schame定义集合
<!-- 配置单独的集合bean,以供多个bean进行引用,需要导出util命名空间 -->
<util:list id="cars">
<ref bean="car"/>
<ref bean="car2"/>
</util:list>

<bean id="person4" class="mdd.study.beans.Person">
<property name="name" value="Tom"></property>
<property name="age" value="22"></property>
<property name="cars" ref="cars">

</property>

</bean>

6   通过p命名空间为bean的属性赋值

<bean id="person5" class="mdd.study.beans.Person" p:age="11"
p:name="Mary" p:cars-ref="cars"></bean>


0 0
原创粉丝点击