1-3 Spring Bean 的属性值设置

时间:2023-03-08 16:50:14
1-3 Spring Bean 的属性值设置

详见http://www.cnblogs.com/chenssy/archive/2013/03/17/2964593.html

1.注入普通的属性值

<bean id="Cat" clss="com.spring.Cat">

<property name="age" value="1" />

<property name="name" value="chenssy" />

</bean>

2.ref 为一Bean设置的属性值是另一Bean的实例时,需要使用ref元素

<bean id="Animls" clss="com.spring.Animals">

<property name="cat" ref="Cat"/>

</bean>

也可以写成

<property name="cat">

<ref local="Cat"/>

</property>

3.自动装配

自动装配可以减少配置文件的工作量,但是它降低了依赖关系的透明性和清晰性,所以一般来说在较大部署环境中不推荐使用,显示配置合作者能够得到更加清晰的依赖关系。Spring提供了如下几种规则来实现自动装配。

by Name

<bean id="Animls" clss="com.spring.Animals" autowrite="byName"/>

byType

<bean id="Animls" clss="com.spring.Animals" autowrite="byType">

4.嵌套Bean

如果某个Bean所依赖的Bean不想被Spring容器直接访问,则可以使用嵌套Bean。<bean.../>元素用来定义嵌套Bean,嵌套Bean只对嵌套它的外部Bean有效,Spring容器无法直接访问嵌套Bean,因此在定义嵌套Bean时是无需指定id属性的。

<bean id="Animls" clss="com.spring.Animals" autowrite="byName">

<property name="Cat">

<bean class ="com.spring.Animals">

<property name="age" value="" />

<property name="name" value="achenssyas" />

</bean>

</property>

</bean>

4 list,set,map,props的注入

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns="http://www.springframework.org/schema/beans"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<!-- 定义一个普通的Axe Bean -->

<bean id="steelAxe" class="com.spring.service.impl.SteelAxe" />

<bean id="stoneAxe" class="com.spring.service.impl.StoneAxe" />

<!--定义Chinese Bean -->

<bean id="chinese" class="com.spring.service.impl.Chinese">

<property name="schools">

<list>

<value>小学</value>

<value>中学</value>

<value>大学</value>

</list>

</property>

<property name="scores">

<map>

<entry key="语文" value="88" />

<entry key="数学" value="87" />

<entry key="外语" value="88" />

</map>

</property>

<property name="phaseAxes">

<map>

<entry key="原始社会" value-ref="stoneAxe" />

<entry key="农业社会" value-ref="steelAxe" />

</map>

</property>

<property name="health">

<props>

<prop key="血压">正常</prop>

<prop key="身高">175</prop>

</props>

</property>

<property name="axe">

<set>

<value>普通字符串</value>

<bean class="com.spring.service.impl.SteelAxe"></bean>

<ref local="stoneAxe"/>

</set>

</property>

<property name="books">

<list>

<value>java 编程思想</value>

<value>思考致富</value>

<value>将才</value>

</list>

</property>

</bean>

</beans>

从上面的配置文件中可以看出,Spring对list属性和数组属性的处理是一样的。

当我们使用<list.../>、<set.../>、<map.../>等元素配置集合属性时,我们还需要手动配置集合元素。由于集合元素又可以是基本类型值、引用容器中的其他Bean、嵌套Bean和集合属性等。所以这些元素又可以接受如下子元素:

value:指定集合元素是基本数据类型或者字符类型值。

ref:指定集合元素师容器中另一个Bean实例。

bean:指定集合元素是一个嵌套Bean。

list、set、map、props:指定集合元素值又是集合