依赖注入
依赖注入支持属性注入、构造函数注入、工厂注入。
属性注入:
属性注入即通过setXxx()方法注入Bean的属性值或依赖对象
属性注入要求Bean提供一个默认的构造函数(无参构造函数),并为需要注入的属性提供对应的Setter方法
过程:Spring先调用Bean的默认构造函数实例化Bean对象,然后通过反射的方式调用Setter方法注入属性值
配置方法:
<bean id="bigbean" class="com.me.Bigbean">
<property name="age"><value>25</value></property>
</bean>
Bean的每一个属性对应<bean>中的每一个<property>,name为属性的名称,在Bean实现类中拥有与对应的Setter方法。(注意:Spring只会检查Bean中是否有对应的Setter方法,至于Bean中是否有对应的属性变量则不做要求)
构造函数注入:
构造函数注入能保证一些必要的属性在Bean实例化时就得到设置,保证Bean在实例化后就可使用。如果使用属性注入只能人为在配置时提供保证而无法在语法级提供保证,构造函数注入就可以很好地满足这一要求。
要求:Bean必须提供带参的构造函数
配置方法:
<bean id="bigbean" class="com.me.Bigbean">
<constructor-arg index="0" type="int">
<value>25</value>
</constructor-arg>
</bean>
工厂方法注入:
<!--迟点补充-->