Spring autowire = "byType" с помощью Java Config? - PullRequest
0 голосов
/ 20 ноября 2018

Я могу автоматически подключаться по типу и по имени в XML-конфигурации следующим образом

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

Но как я могу добиться того же в конфигурации Java?Я имею в виду, что такое Java Config эквивалентно атрибутам autowire = "byName" и 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();
    }

Заранее спасибо!

1 Ответ

0 голосов
/ 21 ноября 2018

Когда вы просто автоматически проводите с помощью аннотации @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();
}

Дополнительную информацию см. Здесь здесь

...