Java Spring framework 4.3.0-何时需要@Autowired?

Java Spring framework 4.3.0-何时需要@Autowired?,java,spring,Java,Spring,我刚开始学习Spring框架(我使用的是4.3.0版),我认为我们需要@Autowired来告诉框架类何时需要注入 但是,我今天尝试了以下方法: @Component public class CDPlayer implements MediaPlayer{ private CompactDisc cd; //there are no @Autowired here public CDPlayer(CompactDisc cd) { this.cd =

我刚开始学习Spring框架(我使用的是4.3.0版),我认为我们需要@Autowired来告诉框架类何时需要注入

但是,我今天尝试了以下方法:

@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?

时,这是SpringBoot4.3中的一项新功能。如果类中只有一个构造函数,则此构造函数将用于自动关联参数。如果您有更多的构造函数,或者如果您想使用setter或fieldinjection,那么您仍然需要
@Autowired
注释。

自Spring 4.3以来,如果您的类只有一个构造函数,则不必这样做

因此,从4.3开始,您不再需要指定显式注入 在这种单一构造函数场景中的注释。这尤其重要 非常适合不携带任何容器的类 根本不需要注释

您可以在这里看到:(单构造函数场景的隐式构造函数注入