import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationListener;
importorg.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component; @Component
public class InitDataListener implements
ApplicationListener { //ContextRefreshedEvent为初始化完毕事件
private static final Logger LOGGER =Logger
.getLogger(InitDataListener.class);
// 缓存管理器
@Autowired
@Qualifier("dictCacheManager")
private DictCacheManager dictCacheManager;
@Override
public voidonApplicationEvent(ContextRefreshedEvent event) {
final ApplicationContext app= event.getApplicationContext();
if (null ==app.getParent()
&&"Root WebApplicationContext".equals(app.getDisplayName())) { //当存在父子容器时,此判断很有用
//读取字典配置
Map config =new HashMap();
try {
config= PathUtil.getProperties("dataDictConfig.properties");
finalString mKey = config.get("dataDictKey");
if(StringUtils.isNotBlank(mKey)) {
DictCacheManager.M_KEY= mKey;
}
} catch(Exception e) {
LOGGER.error("Load\"dataDictConfig.properties\" failure!", e);
}
//判断是否立即加载数据字典到Redis
if("false".equals(config.get("lazyLoad"))) { //立即加载数据字典数据到Redis缓存服务器
dictCacheManager.init();
}
}
}
} }

  

Spring监听,ApplicationListener的更多相关文章

  1. spring监听机制——观察者模式的应用

    使用方法 spring监听模式需要三个组件: 1. 事件,需要继承ApplicationEvent,即观察者模式中的"主题",可以看做一个普通的bean类,用于保存在事件监听器的业 ...

  2. Spring的事件监听ApplicationListener

    ApplicationListener是Spring事件机制的一部分,与抽象类ApplicationEvent类配合来完成ApplicationContext的事件机制. 如果容器中存在Applica ...

  3. Spring事件监听ApplicationListener源码流程分析

    spring的事件机制是基于观察者设计模式的,ApplicationListener#onApplicationEvent(Event)方法,用于对事件的处理 .在容器初始化的时候执行注册到容器中的L ...

  4. Spring 监听

    Spring 中的事件监听的实现 这里我们不讨论事件监听的机制的原理,我们只讨论如何在项目中实现时间监听. spring的事件监听是基于观察者模式.设计开发中.如下类与接口是我们必须要使用的. App ...

  5. SpringMVC 事件监听 ApplicationListener

    1. 实现 ApplicationListener<T> 接口(T为监听类型,稍后会列出具体可监听事件) 2. 将该自定义监听类,注册为Spring容器组件.(即将该类注入Spring容器 ...

  6. spring监听与IBM MQ JMS整合

    spring xml 的配置: 文件名:applicationContext-biz-mq.xml <?xml version="1.0" encoding="UT ...

  7. spring源码-事件&监听3.6

    一.spring中的发布与监听模式,是我们最常用的一种观察者模式.spring在其中做了很多优化,目的就是让用户更好的使用事件与监听的过程. 二.常用的事件与监听中涉及到的接口和类为:Applicat ...

  8. Spring的事件监听机制

    最近公司在重构广告系统,其中核心的打包功能由广告系统调用,即对apk打包的调用和打包完成之后的回调,需要提供相应的接口给广告系统.因此,为了将apk打包的核心流程和对接广告系统的业务解耦,利用了spr ...

  9. 十一、Spring之事件监听

    Spring之事件监听 ApplicationListener ApplicationListener是Spring事件机制的一部分,与抽象类ApplicationEvent类配合来完成Applica ...

随机推荐

  1. Redis事务概念

    redis事务与监控 Author:SimpleWu GitHub-redis 在redis中它的事务与批处理非常相似 Redis中的事务(transaction)是一组命令的集合.事务同命令一样都是 ...

  2. javaSocket笔记

    1.查看电脑当前开放链接的端口号 使用netstat命令 netstat -nao 可以查看PID进程号 netstat -nab 获取进程的详细信息 2.类创建的不同对象,引用是不同的.也就是说同一 ...

  3. cf14d 树的直径,枚举删边

    #include<bits/stdc++.h> using namespace std; #define maxn 300 ]; int n,head[maxn],tot,a,b,dis[ ...

  4. spring cloud feign覆写默认配置级feign client的日志打印

    一.覆写fegin的默认配置 1.新增配置类FeignConfiguration.java package com.config; import org.springframework.context ...

  5. tomcat中浏览器重新选择下.就解决该问题了

  6. 设置IDEA中的web

  7. 51 NOd 2006 飞行员配对(匈牙利算法二分匹配)

    题目来源: 网络流24题 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏  关注 第二次世界大战时期,英国皇家空军从沦陷国征募了大量外籍飞行员.由皇家空军派出的每一 ...

  8. 混合编译.c/.cpp与.cu文件

    混合编译.c/.cpp与.cu文件 项目中用到cuda编程,写了kernel函数,需要nvcc编译器来编译..c/.cpp的文件,假定用gcc编译. 如何混合编译它们,整体思路是:.cu文件编译出的东 ...

  9. python-中缀表达式转前缀表达式

    作完了中缀前缀,作一个归纳吧. https://www.cnblogs.com/unixfy/p/3344550.html # coding = utf-8 class Stack: def __in ...

  10. (Access denied for user 'root'@'slaver1' (using password: YES))

    1.问题描述,启动azkaban的时候报如下所示的错误.之前使用azkaban是root用户,今天使用hadoop用户进行配置和使用,报这个错,说是root连接mysql拒绝了. [hadoop@sl ...