Sobes.tech
Назад к вопросам
Senior
5

Что такое аннотация @Conditional в Spring и для чего используется?

Компании, где спрашивали
платформа офд

Ответ от нейросети

sobes.tech AI

Аннотация @Conditional в Spring используется для условного создания бинов или конфигураций в зависимости от заданных условий. Она позволяет включать или исключать компоненты из контекста приложения в зависимости от окружения, наличия классов, свойств и других факторов.

Например, можно создать бин только если определённый класс присутствует в classpath или если задано определённое свойство.

Пример использования:

@Configuration
@ConditionalOnProperty(name = "feature.enabled", havingValue = "true")
public class FeatureConfig {
    // бин будет создан только если feature.enabled=true в свойствах
}

@Conditional — более общий механизм, на основе которого построены специализированные аннотации, такие как @ConditionalOnProperty, @ConditionalOnClass и другие. Внутри @Conditional указывается класс, реализующий интерфейс Condition, где описывается логика проверки условия.

Это позволяет гибко управлять конфигурацией приложения и создавать адаптивные настройки под разные среды и сценарии.