博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring ApplicationListener接口(续)
阅读量:5129 次
发布时间:2019-06-13

本文共 1854 字,大约阅读时间需要 6 分钟。

之前一篇写了ApplicationListener在spring中的实现

这次写的demo试一下这个接口

先上代码

@Servicepublic class BeanPostprocessorTest implements BeanPostProcessor, ApplicationListener{    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {        System.out.println("++++++++++++++++++++++postProcessAfterInitialization ++++++++++++++++++++++++++");        System.out.println(beanName);        return bean;    }    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {        // TODO Auto-generated method stub        return bean;    }        public void onApplicationEvent(ApplicationEvent event) {        System.out.println("++++++++++++++++++++++ApplicationEvent ++++++++++++++++++++++++++");        System.out.println(event.getClass().getName());            }}

这个类特别简单,但是同时实现了两个接口

BeanPostProcessor, ApplicationListener

可以只看ApplicationListener的onApplicationEvent

里面可以取到event的实现类

启动spring容器之后可以看到控制台输出了

++++++++++++++++++++++ApplicationEvent ++++++++++++++++++++++++++

org.springframework.context.event.ContextRefreshedEvent
++++++++++++++++++++++ApplicationEvent ++++++++++++++++++++++++++
org.springframework.context.event.ContextStartedEvent

 

也就是说在context refresh 和 start的时候都会执行这个方法

再看一个更实际的例子

dubbo的ServiceBean类同样实现了ApplicationListener这个接口

具体代码如下

public void onApplicationEvent(ApplicationEvent event) {        if (ContextRefreshedEvent.class.getName().equals(event.getClass().getName())) {            if (isDelay() && ! isExported() && ! isUnexported()) {                if (logger.isInfoEnabled()) {                    logger.info("The service ready on spring started. service: " + getInterface());                }                export();            }        }    }

大概意思是当ContextRefreshed时,执行export方法

下一篇说一下BeanPostProcessor这个接口

转载于:https://www.cnblogs.com/liguangming/p/10149096.html

你可能感兴趣的文章
fiddler抓取https失败解决方案
查看>>
Windows定时任务没有执行
查看>>
Hexo瞎折腾系列(2) - 添加背景图片轮播
查看>>
vs------各种错误解决方法
查看>>
JavaScript基础---语言基础(3)
查看>>
团队站立会议08
查看>>
IOI1998 Polygon [区间dp]
查看>>
硬链接和符号链接的区别
查看>>
docker-swarm
查看>>
接口和抽象类
查看>>
poj2151 Check the difficulty of problems(概率dp)
查看>>
UI- UINavigationController UITabBarController 使用总结
查看>>
BZOJ3926: [Zjoi2015]诸神眷顾的幻想乡(广义后缀自动机)
查看>>
mysql 中 時間和日期函數大全
查看>>
mongodb基本语法
查看>>
[凯立德]2014全分辨率C-Car 4.0机车C2610版完美懒人包
查看>>
[LeetCode] Same Tree
查看>>
给Entity Framework添加执行的超时时间
查看>>
【总结】瞬时高并发(秒杀/活动)Redis方案(转)
查看>>
numpy模块
查看>>