依赖注入DI 方式
- setter注入
- 构造器注入
- 接口注入(基本不用)
- AutoWired自动注入
优先级
- 构造器注入 最先执行
- AutoWired 其次
- Setter 最后执行
示例代码
注入类
public class SpringDI {
private Teacker teacker;
private Teacker1 teacker1;
@Autowired()@Qualifier("teacker2")
private Teacker2 teacker2;
public SpringDI(Teacker1 teacker1){
System.out.println(teacker2);
System.out.println(teacker);
System.out.println("=============构造器注入==============");
this.teacker1=teacker1;
}
public void setTeacker(Teacker teacker) {
System.out.println(teacker1);
System.out.println(teacker2);
System.out.println("=============setter注入==============");
this.teacker=teacker;
}
}
配置文件
<context:component-scan base-package="com" />
<bean id="teacker" class="com.chenfei.entity.Teacker"></bean>
<bean id="teacker1" class="com.chenfei.entity.Teacker1"></bean>
<bean id="springDI" class="com.chenfei.di.SpringDI">
<constructor-arg ref="teacker1"/>
<property name="teacker" ref="teacker"></property>
</bean>
测试代码
@Test
public void test(){
FileSystemXmlApplicationContext applicationContext = new FileSystemXmlApplicationContext("classpath:beans.xml");
}
执行结果