Импортируйте конфигурацию, объявляющую A, и получите его параметром @Bean-метода b(A a). Spring сам разрешит зависимость из контейнера.
Настройка внедрения зависимости в Spring‑конфигурации
Импортируйте конфигурацию, объявляющую A, и получите его параметром @Bean-метода b(A a). Spring сам разрешит зависимость из контейнера.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
В конфигурационном классе ConfigA требуется обеспечить возможность доступа к компоненту A, чтобы корректно выполнить внедрение зависимости (DI) в методе B.
- Объявить @Bean для компонента A в той конфигурации, которая импортируется в ConfigA.
- Проверить, что Spring может обнаружить bean A и передать его в ConfigA.
- Убедиться, что механизм внедрения зависимостей работает без ошибок.
Ответ
Импортируйте конфигурацию, объявляющую A, и получите его параметром @Bean-метода b(A a). Spring сам разрешит зависимость из контейнера.
@Configuration
class SourceConfig {
@Bean
A a() { return new A(); }
}
@Configuration
@Import(SourceConfig.class)
class ConfigA {
@Bean
B b(A a) { return new B(a); }
}
Пример предполагает соответствующие конструкторы A и B. ConfigA должен попасть в application context через сканирование или явную регистрацию. Если бинов A несколько, задайте @Qualifier либо @Primary. Передача зависимости параметром удобнее прямого вызова другого @Bean-метода и не требует зависимости от proxyBeanMethods.