Spring IoC контейнер: Java конфигурация, условно включать классы @Configuration или @Bean-методы
Часто бывает полезно условно включить или отключить весь класс @Configuration или даже отдельные методы @Bean на основе некоторого произвольного состояния системы. Одним из распространенных примеров этого является использование аннотации @Profile для активации bean-компонентов только тогда, когда в среде Spring включен конкретный профиль. Аннотация @Profile фактически реализована с помощью гораздо более гибкой аннотации под названием @Conditional. Аннотация @Conditional указывает конкретные реализации org.springframework.context.annotation.Condition, с которыми следует проконсультироваться до регистрации @Bean. Реализации интерфейса Condition предоставляют метод matches(…), который возвращает true или false. Например, в следующем листинге показана фактическая реализация Condition, используемая для @Profile: Java @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { // Считываем атрибуты аннотации @Profile MultiValueMap<String, O...