我刚刚开始学习Spring框架(我使用版本4.3.0),并且我认为我们需要@Autowired告诉框架何时需要注入(inject)类。

但是,我今天尝试:

@Component
public class CDPlayer implements MediaPlayer{

    private CompactDisc cd;

    //there are no @Autowired here
    public CDPlayer(CompactDisc cd) {
        this.cd = cd;
    }

    public void play() {
        cd.play();
    }

}

通过自动布线配置,它可以很好地工作:
@Configuration
@ComponentScan
public class CDPlayerConfigAuto {

}

所以,当我真的需要使用@Autowired时?

最佳答案

从Spring 4.3开始,如果您的类只有一个构造函数,则不必这样做。



您可以在此处看到:(用于单构造器场景隐式构造器注入(inject))

https://spring.io/blog/2016/03/04/core-container-refinements-in-spring-framework-4-3

09-26 23:18
查看更多