1:SET方式注入
定义:使用SET方法形式为成员变量赋值
语法:将需要的组件声明为成员变量并提供SET方法,在配置文件中使用property标签进行赋值
- 8种基本数据类型与string类型的注入
<property name="animalDao" ref="animalDaoImp"/>
<property name="name" value="小明"/>
<property name="age" value="19"/>
<property name="password" value="66666"/>
<property name="salary" value="1343"/>
<property name="price" value="123.4"/>
<property name="bir" value="2009/04/23"/>
- 数组的注入
<!--数组注入-->
<property name="arr">
<array>
<value>uuuu</value>
<value>wwww</value>
<value>zzzz</value>
<value>xxxx</value>
</array>
</property>
- list的注入
<!--list的注入-->
<property name="list">
<list>
<value>aaaaa</value>
<value>bbbbb</value>
<value>ddddd</value>
</list>
</property>
- map的注入
<!--map的注入-->
<property name="map">
<map>
<entry key="1" value="小黄"></entry>
<entry key="2" value="小明"></entry>
<entry key="3" value="小张"></entry>
</map>
</property>
2:构造注入
定义:使用类中的构造方法形式为成员变量赋值
语法:将需要的组件声明为成员变量并提供构造方法在配置文件中使用constructor-arg标签进行赋值。
<!-- 使用构造方法形式为成员变量赋值
index: 代表当前赋值的属性在构造方法参数中的索引下标 从0开始
name:用来书写赋值成员变量名
-->
<constructor-arg index="0" name="age" value="23"></constructor-arg>
<constructor-arg index="1" name="balance" value="189898799"/>
<constructor-arg index="2" name="name" value="小黄"/>
<constructor-arg index="3" name="password" value="123456"/>
<constructor-arg index="4" name="salary" value="233"/
注:使用构造方法注入时不能自己注入自己
3:自动注入
定义:使用bean标签 autowired进行自动赋值
语法:将需要的组件声明为成员变量并提供SET方法
byType:根据类型
byName:根据名称
<bean id="deptService" class="" autowire="byName/byType"></bean>
**注:根据类型自动注入时,如果工厂中存在多个类型一致的组件对象报错**
注入通用语法:
1:基本类型+String+日期类型的注入使用value属性
2:对象|引用|组件类型使用ref属性
3:数组使用arry标签 list使用list set使用set map使用map properties使用props标签