Как я могу зарегистрировать/добавить обычную процедуру отключения, которая будет срабатывать, когда мое приложение загрузки Spring отключится?
Сценарий: я развертываю приложение Spring для загрузки в контейнер сервлетов Jetty (т.е. нет встроенного Jetty). В моем приложении используется Logback для ведения журнала, и я хочу изменить уровни ведения журнала во время выполнения, используя конфигуратор Logback MBean JMX. В его документации указано, что во избежание утечек памяти при выключениях должен быть вызван определенный метод выключения LoggerContext.
Каковы хорошие способы прослушивания Spring событий завершения загрузки?
Я пробовал:
public static void main(String[] args) throws Exception {
ConfigurableApplicationContext cac = SpringApplication.run(Example.class, args);
cac.addApplicationListener(new ApplicationListener<ContextClosedEvent>() {
@Override
public void onApplicationEvent(ContextClosedEvent event) {
logger.info("Do something");
}
});
}
но этот зарегистрированный прослушиватель не вызывается, когда приложение отключается.