В конфигурации Spring Java, предположим, я хочу повторно использовать @Bean
в другом определении @Bean
. Я могу сделать это либо в одном файле:
@Bean
public A buildA() {
return new A();
}
@Bean
public B buildB() {
return new B(buildA());
}
или я могу настроить A в одном файле и автоматически связать его в другом файле, например (поле для краткости):
@Autowired
private A a;
@Bean
public B buildB() {
return new B(a);
}
Интересно, а две возможности одинаковы? Для меня это выглядит так, как будто первая версия может дважды установить A, а вторая - нет.
Я спрашиваю об этом, поскольку в моем случае особого использования A устанавливает соединение с брокером обмена сообщениями, и у меня есть несколько B, которые используют поток (я использую .toReactivePublisher()
из Spring интеграции в A), и я не ' не хочу дважды или больше подключаться к брокеру.