简介:
ApplicationListener也是Spring拓展接口之一,他加载的顺序在InitializingBean afterPropertiesSet之后,可能在某些场景我们依赖的组件是在Spring生命周期InitializingBean这一环节加载的,所以我们无法在InitializingBean这一层拿到依赖的组件实例,这时候可以使用ApplicationListener<ContextRefreshedEvent>去嵌入 Spring生命周期靠后的流程,继续我们缓存预热等操作。
如上,刚好证明了Spring的加载顺序,所以这是一种用法。
当然,ApplicationListener本质上是事件监听器,泛型里填入的是具体的事件,是一种生产者消费者模式,当Spring完成特定的事件就会触发当前事件的监听器去处理,思想是一种事件驱动的思想。
我们只不过利用了这个插拔的特性,选择在生命周期某个事件中,加入我们的业务操作。
当然,我们也可以编写自己的事件以及监听,然后去使用它,这些Spring都是天然支持的。
网友评论