Wetts's blog

Stay Hungry, Stay Foolish.

0%

依赖注入-XML配置-注入方式

Spring支持两种依赖注入方式,分别是属性注入和构造函数注入。除此之外,Spring还支持工厂方法注入方式。

属性注入

通过set方法注入Bean的属性值或者依赖对象。是实际应用中最常采用的注入方式。

Spring只会检查Bean中是否有对应的Setter方法,至于Bean中是否有对应的属性变量则不做要求。

一般情况下,Java的属性变量名都以小写字母起头。但也存在特殊情况,考虑到一些特定意义的大写英文缩略词(USA、XML等),JavaBean也允许大写字母起头的属性变量名,不过必须满足“变量的前两个字母要么全部大写,要么全部小写”的要求。

构造函数注入

它保证一些必要的属性在Bean实例化时就得到设置。

按类型匹配入参

1
2
3
<constructor-arg type="">
<value></value>
</constructor-arg>

两个参数相同类型就会出问题

按索引匹配入参

1
<constructor-arg index="" value="" />

能解决按类型匹配入参会遇到的问题。但两个构造方法参数个数相同会出现问题

联合使用类型和索引匹配入参

1
<constructor-arg index="" type=""><value></value></constructor-arg>

能解决按索引匹配入参会遇到的问题。

工厂方法注入

非静态工厂方法

1
2
<bean id="carFactory" class="" />
<bean id="car" factory-bean="carFactory" factory-method="createCar" />

静态工厂方法

1
<bean id="car" class=""(工厂类) factory-method="createCar" />