在“ ApplicationContext之前”阶段未触发任何应用程序事件

时间:2019-04-01 06:53:02

标签: java spring-boot

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

    }
}

期望看到一些要打印到控制台的事件。感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您调用的run方法是静态方法。这意味着springApplication实例的状态(包括您添加的侦听器)无效。

您应该改为执行以下操作:

SpringApplication springApplication = new SpringApplication(MySpringBootApplication.class);
springApplication.addListeners(new MyListener());
springApplication.run(args);