Spring监听机制的解读

Spring监听机制的解读

首先,明确监听机制的设计模式是观察者模式

那么先复习一下观察者模式的实现方式

class Listener{

	void onEVentPublished(){
		//在事件发生时这个方法被回调
		System.out.println("Event published!!!");
	}

}

class Event{
	List<Listeners> listenerList;//所有的监听器列表
	void publish(T anythingYouNeed){
		for(Listeners l: listenerList){
			//这里还可以加一些监听器执行的条件,比如 检查anythingYouNeed中的信息是不是合乎你的要求
			l.onEventPublished();
		}
	}

}

观察者模式的关键是,发布者拥有所有观察者的一个列表,因此在发布信息时就直接回调它的所有listener的onEventPublished()方法实现监听.

那么在spring中有个叫做EventMulticaster的类来分发事件,会调用一个叫getApplicationListeners()的方法拿到
所有的监听器(怎么拿到?还是在父类AbstractApplicationEventMulticaster的一个成员里存的有,用Set集合装的),
暴力轮询这些监听器,看看这些监听器是不是监听的发生的事件类型,如果是就回调监听器中的onApplicationEvent()方法~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值