Spring提供两种依赖注入的方式:属性注入和构造函数注入
还支持工厂方法注入的方式(不常使用)
- 属性注入
通过setXXX()函数注入Bean的属性及依赖对象
属性注入要求Bean提供一个默认的构造函数及要注入属性的SetXXX()方法
Ps: Spring 只要求是否有setXXX()方法,对于是否有相应的属性不做要求
如:
Public test{
Int a;//对于属性a无要求,但是一般会添加
//但是必须有setA()方法
Public void setA(int a){
This .a=a;
}
}
Spring会先调用Bean的默认的构造函数实例化Bean对象,然后通过反射的方式调用Bean的setter方法注入属性值。
- 构造函数注入
保证Bean的一些重要的属性在实例化之后就能使用
使用构造函数注入的前提是Bean必须提供带参数的构造函数
Spring的配置文件采用元素标签与顺序无关的原则,即在一个上下文配置文件中,两个标签的位置不同不会影响使用。
但是在web.xml文档中,标签的顺序是有影响的。
构造函数注入有以下几种方式:
- 按照类型匹配参数
- 按照索引匹配参数
- 类型及索引联合使用匹配参数
- 通过自身类型反射匹配参数
- 工厂方法注入
<bean id="" class="工厂方法类"factory-method="工厂类方法"/>