在spingboot启动后,bean初始化前启动监听器

前面写过一篇文章,提到了配置springboot监听器,也能正常的监听springboot启动。但是存在一个问题,就是,如果想要在bean初始化的时候使用监听器中获取的配置的时候,这种方式不能实现。

想要实现在springboot启动后,bean初始化之前监听,需要做如下的改变:

改变一下监听事件类型即可

public class PropertyListener implements ApplicationListener<ApplicationPreparedEvent> {

...

}

只要实现的ApplicationPreparedEvent事件监听,就可以实现在springboot启动后、bean初始化之前监听。

此时,需要在SpringApplication中添加监听器

SpringApplication springApplication =new SpringApplication(DemoApplication.class);

springApplication.addListeners(new PropertyListener());

springApplication.run(args);

这种方式有一个缺点,就是不能在单元测试中使用监听器!不能在单元测试中使用监听器!不能在单元测试中使用监听器!

重要的事情说三遍!!!

你可能感兴趣的:(在spingboot启动后,bean初始化前启动监听器)