Условное инициирование группы бинов по свойству - PullRequest
0 голосов
/ 08 марта 2019

В моем весеннем загрузочном приложении у меня есть много bean-компонентов, отвечающих за мониторинг. Сегодня каждый из них отмечен:

@ConditionalOnProperty(name="enable.monitor", havingValue="true")

Таким образом, мониторинг полностью настраивается, и я могу включать и выключать его из файла свойств.
В этом решении мне не нравится то, что я должен добавить эту длинную аннотацию к каждому компоненту. Я задавался вопросом, есть ли более элегантный способ добиться этого настраиваемого мониторинга. Может быть, пометив все bean-компоненты новой аннотацией, скажем, @Monitoring, и как-то сказать Spring, чтобы они инициировали их на основе свойства, возможно ли это?
Любые другие предложения приветствуются.

1 Ответ

0 голосов
/ 08 марта 2019

Можно создать собственную пользовательскую аннотацию @Monitoring следующим образом:

Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@ConditionalOnProperty(name="enable.monitor", havingValue="true")
public @interface Monitoring {
}

Это может быть применено впоследствии к другим бобам.

...