跳至主要內容
注入集合

1、测试

加入有以下代码,~MyProcessor~是一个接口,没有提供任何实现,然后启动容器会发现执行Bean1的构造方法时并不会空指针,容器会自动提供一个Collection的实现类~LinkedHashMap$LinkedValues~,那么容器如何注入我自己的MyProcessor呢?

@Component
public class Bean1 {

    public Bean1(Collection<MyProcessor> processors){
        System.out.println(processors);
        System.out.println("执行构造方法");
        System.out.println(processors.size());
    }
}

ChenSino大约 1 分钟Spring
Spring循环依赖

1、循环依赖的产生

A依赖B,B也依赖于A

public class A{
    private A a;

    public void setA(A a){
        this.a = a;
    }

    public A getA(){
        return this.a;
    }
}

public class B{
    private B b;

    public void setA(B b){
        this.b = b;
    }

    public B getB(){
        return this.b;
    }
}

chensino大约 1 分钟Spring
注解

1、依赖注入

 1. @Autowired
     是Spring中的注解,按照类型注入,此注解可以用于字段属性上、setter方法上、构造函数上,用在字段上则Spring底层会使用反射对字段进行赋值,用成员变量的在setter方法上,则会调用setter方法进行注入。从Spring4.3开始,如果只有一个有参的构造方法,则可以省略构造方法上的@Autowired
 2. @Autowired + @Qualifier 
    按照bean的名字注入
 3. @Resource
    是JavaEE规范中的注解在JSR250引入,默认是按照bean的名字注入,如果没指定名字则按照类型注入

ChenSino大约 1 分钟Spring