一、概念
依赖注入:Dependency injection ,DI 。和控制反转的含义相同,从两个角度描述同一个概念。使用依赖注入可更轻松的管理和测试应用程序。
当需要某个Java实例时,传统做法是调用者使用new方法、工程方法创建新实例。
而使用Spring框架后,实例不再由调用者创建,而是由Spring容器创建,这称为控制反转。
Spring容器创建被调用实例时,会自动将调用者需要的对象实例注入给调用者,调用者通过Spring容器获得实例,这称为依赖注入。
二、注入方式
public class Rder {
@Getter
@Setter
private Qaer qa;
@Getter
@Setter
private String worker;
public Rder(){}
public Rder(Qaer qa){
this.qa = qa;
}
public void preOnline(){
this.qa.doWork();
this.doWork();
}
public void doWork(){
System.out.println("RD code up online,"+this.worker);
}
}
public class Qaer {
@Getter
@Setter
private String worker;
public Qaer(){
}
public void doWork(){
System.out.println("QA is testing "+ this.worker);
}
}
1、构造函数的依赖注入
2、基于setter方法的注入,属性必须有Setter方法。
java
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="rder1" class="springdemo.iocdemo.Rder">
<constructor-arg ref ="qaer1"/>
<property name="worker" ref="worker"></property>
</bean>
<bean id="qaer1" class="springdemo.iocdemo.Qaer">
<property name="worker" ref="worker"></property>
</bean>
<bean id="worker" class="java.lang.String" >
<constructor-arg type="String" value="content inner"/>
</bean>
</beans>
###
### 三、注入集合
集合主要是指:list、map、set
```java
```