DI(依赖注入)
2018-06-05 本文已影响7人
pure_joy
DI(依赖注入):给属性赋值
提供了(XML)两种方法给属性赋值:1、setter 2、构造方法
一、setter
property就是一个bean的属性,name就是用来描述属性的名称,value就是值;如果是一般类 型(基本类型和String)就用value赋值;如果是引用类型,就不能用value赋值,而是spring容器内部创建的student对象给person的student对象赋值了,使用ref
1、<property name="person" ref="student"></property>
2、<property name="person">
<ref bean="student"/>
</property>
注意:集合list,在spring中给属性赋值叫装配
//list
<property name="lists">
<list>
<value>list1</value>
<value>list2</value>
</list>
</property>
//map
<property name="map">
<map>
<entry>
<value>map1</value>
</entry>
<entry>
<ref bean="student"/>
</entry>
</map>
</property>
//properties
<property name="properties">
<props>
<prop key="p1">prop1</prop>
<prop key="p2">prop2</prop>
</props>
</property>
//objects
<property name="objects">
<list>
<value>obj1</value>
<ref bean="student"/>
</list>
</property>
IOC和DI结合的真正意义:Java代码端完全面向接口编程
二、构造方法
constructor-arg指的是构造器中的参数
index角标从0开始
value如果是一般类型就用value赋值
ref引用类型赋值
<bean id="person" class="...">
<constructor-ags index="0" value="abc"/>
<constructor-ags index="1" ref="student"/>
</bean>
<bean id="student" class="..."/>