Вопрос проверяет понимание того, как Spring решает, создавать бин или нет, в зависимости от условий.
Условное создание бинов позволяет регистрировать бин только при выполнении заданных условий.
Для этого используются специальные аннотации.
Условия проверяются при старте контекста.
Этот механизм активно используется в Spring Boot.
Условное создание бинов — один из ключевых механизмов гибкости Spring.
Spring может создать бин только если выполнено определенное условие.
Это позволяет:
Подключать функциональность по необходимости
Избегать конфликтов бинов
Делать конфигурацию адаптивной
На практике чаще всего используются:
@ConditionalOnProperty
Бин создается, если задано свойство
@ConditionalOnClass
Бин создается, если класс есть в classpath
@ConditionalOnMissingBean
Бин создается, если нет другого бина
@ConditionalOnProfile
Бин активен только для профиля
Пример:
@ConditionalOnProperty(
name = "feature.enabled",
havingValue = "true"
)
@Bean
public FeatureService featureService() {
return new FeatureService();
}
Условные бины применяются:
В автоконфигурации Spring Boot
В feature-toggle механизмах
В инфраструктурных библиотеках
Условное создание бинов делает Spring гибким и расширяемым.
Без этого механизма невозможна автоконфигурация Spring Boot.