Spring核心——全局事件管理

ApplicationContext是一个Context策略(见上下文与IoC),他除了提供最基础的IoC容器功能,还提供了MessageSource实现的国际化、全局事件、资源层级管理等等功能。本文将详细介绍Spring核心模块的事件管理机制。

Spring核心模块的事件机制和常规意义上的“事件”并没有太大区别(例如浏览器上的用户操作事件)都是通过订阅/发布模式实现的。

Spring事件管理的内容包括标准事件、自定义事件、注解标记处理器、异步事件处理、通用实体包装。下面将通过几个例子来说明这些内容,可执行代码请到本人的gitee库下载,本文的内容在包chkui.springcore.example.javabase.event中。

我们都知道在订阅/发布模式中至少要涉及三个部分——发布者(publisher)、订阅者(listener/subscriber)和事件(event)。针对这个模型Spring也提供了对应的两个接口——ApplicationEventPublisher、ApplicationListener以及一个抽象类ApplicationEvent。基本上,要使用Spring事件的功能,只要实现/继承这这三个接口/抽象类并按照Spring定好的规则来使用即可。掌握这个原则那么接下来的内容就好理解了。

标准事件

Spring为一些比较常规的事件制定了标准的事件类型和固定的发布方法,我们只需要定制好订阅者(listener/subscriber)就可以监听这些事件。

先指定2个订阅者:

package chkui.springcore.example.javabase.event.standard;
public class ContextStartedListener implements ApplicationListener<ContextStartedEvent> {
	@Override
	public void onApplicationEvent(ContextStartedEvent event) {
		System.out.println("Start Listener: I am start");
	}
}
package chkui.springcore.example.javabase.event.standard;
public class ContextStopListener implements ApplicationListener<ContextStoppedEvent> {
	@Override
	public void onApplicationEvent(ContextStoppedEvent event) {
		System.out.pr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值