首页 > 代码库 > Spring容器初始化后执行的方法

Spring容器初始化后执行的方法

在项目中, 会遇到要在容器加载完就做一些初始化, 例如Quartz的监听器重新注册(Quartz监听器在RAM中的, Web容器重启或关闭会丢失)等需求。

 

<span style="font-family:Microsoft YaHei;font-size:18px;">import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;


public class InitialSchedulerListner implements ApplicationListener<ContextRefreshedEvent> {  
	</span><span style="font-family: 'Microsoft YaHei';font-size:18px;">	</span>
<span style="font-family:Microsoft YaHei;font-size:18px;">    @Override  
    public void onApplicationEvent(ContextRefreshedEvent event) {</span>
<span style="font-family:Microsoft YaHei;font-size:18px;">      // <span style="color: rgb(51, 51, 51); line-height: 25.2000007629395px;">在web 项目中,系统会存在两个容器,一个是root application context , 另一个就是项目的 projectName-servlet  context(root application context的子容器)</span></span>
<span style="font-family:Microsoft YaHei;font-size:18px;"></span><pre name="code" class="java"><span style="font-family:Microsoft YaHei;font-size:18px;">      // Return the parent context, or <code>null</code> if there is no parent and this is the root of the context hierarchy</span>
if(event.getApplicationContext().getParent() == null){ // 保证了容器只执行一次.. try { // 业务逻辑} catch (Exception e) {} } } }


代码写完记得注入给Spring管理:
<span style="font-family:Microsoft YaHei;font-size:18px;"><bean class="com.wenniuwuren.*.InitialSchedulerListner" /></span>


Spring容器初始化后执行的方法