Spring autowire= "byType" with Java Config?



我可以按照以下方式在XML配置中按类型和名称自动连接

<bean name="employee1" class="com.Class1" autowire="byName">
<bean name="employee2" class="com.Class2" autowire="byType">

但是如何在Java配置中实现同样的功能呢?我的意思是,什么是Java Config等价于autowire="byName"和by-autowire="byType"属性?

@Configuration
public class JavaConfig {
//How to configure beans here, like above?
}

以下代码不起作用

@Bean
public Company company(){
return new Company();
}
@Bean
public Employee employee1(@Autowired Company company){
return new Employee();
}

提前感谢!

当您只是通过@Autowired注释自动布线时,这意味着按类型自动布线。

如果我们想按名称自动连接,我们需要同时使用@Autowired@Qualifier注释。

示例:

@Configuration
public class JavaConfig {
@Bean
@Qualifier("stackoverflow")
public Company company(){
}
@Bean
public Employee employee1(@Autowired Company company){
}
@Bean
public Employee employee2(@Autowired @Qualifier("stackoverflow") Company company){
}
}

更新:还可以使用@Bean注释的参数:

@Bean
public Company company(){
return new Company();
}
@Bean(autowire = Autowire.BY_NAME)
public Employee employee1(@Autowired Company company){
return new Employee();
}

请参阅此处的附加信息

最新更新