我可以按照以下方式在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();
}
请参阅此处的附加信息