tip:重启web服务器是不能够清空redis缓存的 如果没有在web容器的监听中配置清除的方法,那么只有连接上redis的服务器并且执行flushall方法才能够清除缓存
1.设置在WEB容器在启动的时候就加载缓存,如何设置
思路:在Spring容器启动或者刷新的时候进行设置,所以必须用到ApplicationListener去监听ApplicationContext
自定义的ApplicationListener如下(观察者模式)
@Component("ContextRefreshedListener") public class ContextRefreshedListener implements ApplicationListener<ContextRefreshedEvent> { /** * 当一个ApplicationContext被初始化或刷新触发 */ @Override public void onApplicationEvent(ContextRefreshedEvent event) { if (event.getApplicationContext().getDisplayName().equals("Root WebApplicationContext")) { //System.out.println("spring容器初始化完毕================================================"); //多数据源缓存加载 SysSvrHelper.loadxml(); //应用系统、数据源映射缓存加载 AppUtils.loadCache(); //缓存系统参数
SysConfigUtils.loadCache();
} }} 监听的自定义事件封装类为@SuppressWarnings("serial") public class ContextRefreshedEvent extends ApplicationContextEvent { /** * Create a new ContextRefreshedEvent. * @param source the {@code ApplicationContext} that has been initialized * or refreshed (must not be {@code null})