我正在尝试收听ApplicationStartingEvent(或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);
}
}
期望看到一些事件将被打印到控制台。感谢帮助
最佳答案
您调用的run
方法是静态方法。这意味着springApplication
实例的状态(包括已添加的侦听器)无效。
您应该改为执行以下操作:
SpringApplication springApplication = new SpringApplication(MySpringBootApplication.class);
springApplication.addListeners(new MyListener());
springApplication.run(args);