在我们日常开发过程中,经常会用到spring的监听器,今天我们就来分析一下,他的执行流程。
我么一般的使用方式是
这个监听器,监听的是ContextReFreshedEvent的事件,所以当事件发生时,就会被这个监听器监听,从而执行方法中的逻辑。
总的步骤分为两个部分,第一步是监听器的注册,第二步是监听器的运行。
下面我们介绍第一部分-监听器的注册。
当spring容器启动时
在这个preInstantiateSingletons方法中,有下面一段逻辑,找寻SmartInitializingSingleton 这个类的实例,执行他的afterSingletonsInstantiated方法
就把 这个类扫出来了-EventListenerMethodProcessor
这个类的afterSingletonsInstantiated方法如下
到目前为止已经声明了一个ApplicationLister并且注册好了,下面要开始我的第二部分---使用了
发出了一个RefreshedEvent的事件
开始广播事件
调用监听器方法
真正的处理方法
这就是spring监听器的使用的流程了。