通过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)运行一次

spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)

spring boot容器加载完后执行特定操作