spring的依赖注入有两种方式:构造函数注入与set方法注入
构造函数注入
使用constructor-arg标签
其内部属性:
- type:用于指定要注入的数据的数据类型
- index:用于指定要注入的数据在构造函数中索引位置,从0开始
- name:用于指定构造函数中指定名称参数赋值(最常用)
- value:用于给基本类型和String类型的数据赋值
- ref:用于给其他的已经将管理创建对象的功能交给Spring的bean类型数据
如下:将name(String类型),age(int类型),birthday(Date类型)参数传入UserServiceImpl的构造函数中
<bean id="userService" class="cn.sdjz.service.impl.UserServiceImpl">
<constructor-arg name="name" value="zhangsan"></constructor-arg>
<constructor-arg name="age" value="18"></constructor-arg>
<constructor-arg name="birthday" ref="now"></constructor-arg>
</bean>
把Date的对象创建交于Spring管理
<bean id="now" class="java.util.Date"></bean>
set方法注入
采用property标签
标签属性:
- name:用于指定注入时所调用的set方法名中
- value:用于给基本类型和String类型的数据赋值
- ref:用于给其他的已经将管理创建对象的功能交给Spring的bean类型数据
如下:并在UserServiceImpl类中构造name(String类型),age(int类型),birthday(Date类型)的set方法
<bean id="userService" class="cn.sdjz.service.impl.UserService">
<property name="name" value="zhangsan"></property>
<property name="age" value="21"></property>
<property name="birthday" ref="now"></property>
</bean>
使用set方法注入集合数据
集合分两种类型:List结构和Map结构。List结构的有数组、ArrayList、set;Map结构有map,properties。
List结构可用
<property name="myList">
<list>
<value>AAA</value>
<value>BBB</value>
</list>
</property>
Map结构可用
<property name="myList">
<props>
<prop key="testA">AAA</value>
<prop key="testB">BBB</value>
</props>
</property>