一、概念

依赖注入:Dependency injection ,DI 。和控制反转的含义相同,从两个角度描述同一个概念。使用依赖注入可更轻松的管理和测试应用程序。

当需要某个Java实例时,传统做法是调用者使用new方法、工程方法创建新实例。
而使用Spring框架后,实例不再由调用者创建,而是由Spring容器创建,这称为控制反转。
Spring容器创建被调用实例时,会自动将调用者需要的对象实例注入给调用者,调用者通过Spring容器获得实例,这称为依赖注入。

二、注入方式

  1. public class Rder {
  2. @Getter
  3. @Setter
  4. private Qaer qa;
  5. @Getter
  6. @Setter
  7. private String worker;
  8. public Rder(){}
  9. public Rder(Qaer qa){
  10. this.qa = qa;
  11. }
  12. public void preOnline(){
  13. this.qa.doWork();
  14. this.doWork();
  15. }
  16. public void doWork(){
  17. System.out.println("RD code up online,"+this.worker);
  18. }
  19. }
  1. public class Qaer {
  2. @Getter
  3. @Setter
  4. private String worker;
  5. public Qaer(){
  6. }
  7. public void doWork(){
  8. System.out.println("QA is testing "+ this.worker);
  9. }
  10. }


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 beijing wuhan


```

四、注入内部Bean

五、自动装配

六、注解装配

参考

1、Spring 注入集合
2、Spring 依赖注入