Spring监听,ApplicationListener

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();
   }
  }
 }
}

}

  

原文地址:https://www.cnblogs.com/yuyu666/p/10071812.html

时间: 2024-10-12 06:37:50

Spring监听,ApplicationListener的相关文章

Spring 监听

Spring 中的事件监听的实现 这里我们不讨论事件监听的机制的原理,我们只讨论如何在项目中实现时间监听. spring的事件监听是基于观察者模式.设计开发中.如下类与接口是我们必须要使用的. ApplicationContext 首先我们了解一下ApplicationContext,还记得 ApplicationContext ac=new ClassPathXmlApplicationContext("beans.xml"); 1 1 ApplicationContext相当于Sp

spring监听与IBM MQ JMS整合

spring xml 的配置: 文件名:applicationContext-biz-mq.xml [html] view plain copy print? <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001

Spring 监听session 失效方法

public class SessionCounter implements HttpSessionListener { private static int activeSessions =0;   /* Session创建事件 */   public void sessionCreated(HttpSessionEvent event) { //创建session }   /* Session失效事件 */   public void  sessionDestroyed(HttpSessio

Spring架构揭秘-事件监听机制

一.事件监听机制概述 二.事件监听机制结构 三.Spring监听机制架构 Spring的Application拥有发布事件并且注册事件监听器的能力,拥有一套完整的事件发布和监听机制.在Java中,通过java.util. EventObject来描述事件,通过java.util. EventListener来描述事件监听器,在众多的框架和组件中,建立一套事件机制通常是基于这两个接口来进行扩展. 在一个事件体系中,有以下几个重要的概念. 1.事件源:事件对象的产生者,任何一个EventObject

十一、Spring之事件监听

Spring之事件监听 ApplicationListener ApplicationListener是Spring事件机制的一部分,与抽象类ApplicationEvent类配合来完成ApplicationContext的事件机制. 如果容器中存在ApplicationListener的Bean,当ApplicationContext调用publishEvent方法时,对应的Bean会被触发.这一过程是典型的观察者模式的实现. 源码: @FunctionalInterface public i

spring boot 源码赏析之事件监听

使用spring Boot已经快1年多了,期间一直想点开springboot源码查看,但由于种种原因一直未能如愿(主要是人类的惰性...),今天就拿springboot 的监听事件祭刀. springboot 中常用的事件监听主要有ApplicationStartedEvent,ApplicationEnviromentPreparedEvent,ApplicationPreparedEvent,ApplicationStoppedEvent等.用于监听springboot生命周期中的各种事件.

spring 自定义事件发布及监听(简单实例)

前言: Spring的AppilcaitionContext能够发布事件和注册相对应的事件监听器,因此,它有一套完整的事件发布和监听机制. 流程分析: 在一个完整的事件体系中,除了事件和监听器以外,还应该有3个概念: 1. 事件源:事件的产生者,任何一个event都必须有一个事件源: 2. 事件广播器:它是事件和事件监听器之间的桥梁,负责把事件通知给事件监听器: 3. 事件监听器注册表:就是spring框架为所有的监听器提供了一个存放的地方: 通过流程图,可以看出它们是如何各司其职的,如下: 其

spring事件监听机制

事件机制的主要成员: 事件 事件监听器(监听事件触发,处理一些事情) 事件源(发布事件) javaSE 提供了一系列自定义事件的标准. EvenObject,为javaSE提供的事件类型基类,任何自定义事件都必须继承它. EventListener,为javaSE提供的事件监听器基类,任何自定义事件监听器都得实现. javaSE未提供事件发布者,由各个应用程序自行实现事件发布者这一角色. spring提供了ApplicationEventPublisher接口作为事件发布者,并且Applicat

Spring Boot实践——事件监听

借鉴:https://blog.csdn.net/Harry_ZH_Wang/article/details/79691994 https://blog.csdn.net/ignorewho/article/details/80702827     https://www.jianshu.com/p/edd4cb960da7 事件监听介绍 Spring提供5种标准的事件监听: 上下文更新事件(ContextRefreshedEvent):该事件会在ApplicationContext被初始化或者