0

我可以通过以下方式在 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();
    }

提前致谢!

4

1 回答 1

0

当您只是通过@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();
}

在此处查看其他信息

于 2018-11-21T08:14:44.420 回答