События приложения в фазе «before ApplicationContext» не запускаются - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь прослушать ApplicationStartingEvent (или любой этап pre-ApplicationContext), но похоже, что ни один из них никогда не срабатывал.

Попытался установить точку останова в методе onApplicationEvent, попытался распечатать событие в стандартный вывод.ничего не работает

слушатель:

public class MyListener implements ApplicationListener<ApplicationEvent> {

    @Override
    public void onApplicationEvent(ApplicationEvent applicationEvent) {
        System.out.println("Application event " + applicationEvent);
    }
}

приложение:

@SpringBootApplication
public class MySpringBootApplication {
public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication();
        springApplication.addListeners(new MyListener());
        springApplication.run(MySpringBootApplication.class, args);

    }
}

Ожидайте увидеть некоторые события, которые будут распечатаны на консоли.Спасибо за помощь

1 Ответ

1 голос
/ 01 апреля 2019

Метод run, который вы вызвали, является статическим методом.Это означает, что состояние вашего springApplication экземпляра, включая добавленный слушатель, не влияет.

Вместо этого вы должны сделать что-то вроде этого:

SpringApplication springApplication = new SpringApplication(MySpringBootApplication.class);
springApplication.addListeners(new MyListener());
springApplication.run(args);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...