目录
2.1、基于servlet的ServletContextListener
2.2、使用基于spring的 ApplicationListener
1、自定义监听的用途
因为有些系统项目的需要,需要在系统启动的过程之中,直接刷入缓存,或者初始化一些常用系统参数,此时可以使用Listener来实现。比如在系统启动的过程之中刷入数据字典到缓存Redis之中,以及系统常用参数变量到缓存Redis之中。
如下图所示:
2、在SpringBoot之中实现加载自定义监听的方法
主要有两种实现方式:
2.1、基于servlet的ServletContextListener
此种方式需要注意:需要在启动类加上@ServletComponentScan注解
/***
*@purpose:刷新缓存数据的监听
*@author:jianxiapc
*@since:2018年7月17日
***/
@WebListener
public class CacheServletListener implements ServletContextListener {
@Autowired
private RedisStringService redisStringService;
@Autowired
private RedisKeyOperateService redisKeyOperateService;
@Override
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("CacheListener contextDestroyed method");
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
//initCache(arg0);
redisStringService.set("systemNameServletWrite", "whdcmap-web");
System.out.println("initCache completed!");
}
}
2.2、使用基于spring的 ApplicationListener
@Service
public class CacheSpringListener implements ApplicationListener<ApplicationEvent> {
@Autowired
private RedisStringService redisStringService;
@Override
public void onApplicationEvent(ApplicationEvent event) {
redisStringService.set("systemNameSpringWrite", "whdcmap-web");
System.out.println("initCache completed!");
}
}