У меня есть приложение Spring Boot с множеством аннотированных компонентов @Component, @Controller, @RestController. Есть около 20 различных функций, которые я хотел бы переключать отдельно. Важно, чтобы функции можно было переключать без пересборки проекта (можно перезапустить). Я думаю, что конфигурация Spring была бы хорошим способом.
Я мог бы представить конфигурацию (yml) следующим образом:
myApplication:
features:
feature1: true
feature2: false
featureX: ...
Основная проблема в том, что я не хочу использовать блоки if везде. Я бы предпочел полностью отключить компоненты. Например, @RestController должен быть даже загружен, и он не должен регистрировать свои пути. В настоящее время я ищу что-то вроде этого:
@Component
@EnabledIf("myApplication.features.feature1") // <- something like this
public class Feature1{
// ...
}
Есть ли такая функция? Есть ли простой способ реализовать это самостоятельно? Или есть другая лучшая практика для переключателей функций?
Кстати: версия Spring Boot: 1.3.4