ApplicationListener的使用方案

如题所述

第1个回答  2022-06-16

上面用到的事件是 ApplicationEnvironmentPreparedEvent ,插一句:SpringBoot为ApplicationContextEvent提供了四种事件:

定义 好了ApplicationListener下面就是 使用 了。下面是三种使用的方案

我们看到,它会在项目最开始的时候启动(在banner前我一开始楞是没找到),这样在最前面启动,会有什么副作用呢?你试试看在你的Event中使用@Autowired注入一个bean。为什么要注入?总有业务场景需要你在监听事件后做一些事情。注入后你会发现报错 java.lang.NullPointerException: null

说了这么多,其实就是否决了上面两种启动方案(也不能说否决,只能说使用上面两种方案,有一些需求达不到),我的解决方案就是,在定义好ApplicationListener之后,在类前面加上@Configuration,如果不知道@Configuration是啥的自行百度哈~

然后我们再来看下它什么时候会被启动

我们发现启动时间变迟了,然后,惊喜的发现@Autowired注入不报错了 所有事务顺利解决 ~

相似回答
大家正在搜