Настройка внедрения зависимости в Spring‑конфигурации

Импортируйте конфигурацию, объявляющую A, и получите его параметром @Bean-метода b(A a). Spring сам разрешит зависимость из контейнера.

Короткий ответ

Что ответить на собеседовании

Импортируйте конфигурацию, объявляющую A, и получите его параметром @Bean-метода b(A a). Spring сам разрешит зависимость из контейнера.

Подробный разбор

Ответ с пояснениями

Условие

В конфигурационном классе ConfigA требуется обеспечить возможность доступа к компоненту A, чтобы корректно выполнить внедрение зависимости (DI) в методе B.

  1. Объявить @Bean для компонента A в той конфигурации, которая импортируется в ConfigA.
  2. Проверить, что Spring может обнаружить bean A и передать его в ConfigA.
  3. Убедиться, что механизм внедрения зависимостей работает без ошибок.

Ответ

Импортируйте конфигурацию, объявляющую 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.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее