通过ContextRefreshedEvent方式初始化方法
Posted 一个帅哥9527
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过ContextRefreshedEvent方式初始化方法相关的知识,希望对你有一定的参考价值。
@Component public class StartupListener { private final Logger logger = LogManager.getLogger(getClass()); @EventListener(value = ContextRefreshedEvent.class, condition = "#event.source.displayName.startsWith(\"Root\")") public void afterSpringStarted(ContextRefreshedEvent event) { AbstractRefreshableConfigApplicationContext dd = (AbstractRefreshableConfigApplicationContext) event.getApplicationContext(); GateKeeperCentral gateKeeperCentral = dd.getBean("xxxx", GateKeeperCentral.class); gateKeeperCentral.initContext(); } }
1、 EventListener
ContextRefreshedEvent |
当ApplicationContext或者叫spring被初始化或者刷新initialized会触发该事件 |
ContextStartedEvent |
spring初始化完,时触发 |
ContextStoppedEvent |
spring停止后触发,一个停止了的动作,可以通过start() 方法从新启动 |
ContextClosedEvent |
spring关闭,所有bean都被destroyed 掉了,这个时候不能被刷新,或者从新启动了 |
RequestHandledEvent |
请求经过DispatcherServlet 时被触发,在request完成之后 |
2、condition
可以使用SpEL表达式,就是当满足条件才执行
以上是关于通过ContextRefreshedEvent方式初始化方法的主要内容,如果未能解决你的问题,请参考以下文章
ContextRefreshedEvent在Spring集成测试中过早发生
关于Spring JavaWeb工程中的ContextRefreshedEvent事件
利用ApplicationListener和ContextRefreshedEvent加载自己的beanPool
java 应用程序启动时使用ContextRefreshedEvent(JAVA)运行一次