我正在尝试收听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);

09-26 05:53