前言:
写这个是因为之前做项目的时候遇到过需要启动项目之后进行某些操作,就用的上Spring的事件和监听了。
实现:
要想获取事件,首先定义一个bean实现ApplicationListener
public class MyListiner implements ApplicationListener<ContextRefreshedEvent>{
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
//do something
}
}
//ContextRefreshedEvent视不同情况而定,下面会说到
其次,这个bean是需要在启动时加载的,所以用@Component或者直接在xml中配置
详解:
结语:
目前我也只是用到了ContextRefreshedEvent ,用于在启动后处理一些任务或者加载某些设置。其实也可以配置一个servlet去实现,启动顺序设置很大很大就行了,我也用过,如下:
<servlet>
<servlet-name>InitSystemLoaderServlet</servlet-name>
<servlet-class>com.gisquest.realestate.servlet.InitSystemLoaderServlet</servlet-class>
<load-on-startup>10</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>InitSystemLoaderServlet</servlet-name>
<url-pattern>/InitSystemLoaderServlet</url-pattern>
</servlet-mapping>
如果有要求一定要是在Spring容器加载完就进行某项操作那就只好用内置事件来实现了,如果只是需要在启动后预加载一些设置,那也可以用servlet形式来实现。