Java Spring framework 4.3.0-何时需要@Autowired?
我刚开始学习Spring框架(我使用的是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 =
@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开始,您不再需要指定显式注入
在这种单一构造函数场景中的注释。这尤其重要
非常适合不携带任何容器的类
根本不需要注释
您可以在这里看到:(单构造函数场景的隐式构造函数注入)