Spring 派发器和监听器的原理 笔记

第542行 是注册 我们的派发器,他用来派发事件给我的监听器使用。

initApplicationEventMulticaster() 点进方法可以看到,spring 从容器中去找容器中是否有包含
applicationEventMulticaster 这个名字的Bean,如果存在,就将他赋值
this.applicationEventMulticaster =
beanFactory.getBean(APPLICATION_EVENT_MULTICASTER_BEAN_NAME, ApplicationEventMulticaster.class);
否则就自己创建了一个简单的派发器并注册到容器中
this.applicationEventMulticaster = new SimpleApplicationEventMulticaster(beanFactory);

 第548 行是将所有的监听器注册到我们的派发器中,这样当事件发布的时候,监听器就能监听到并执行方法

onApplicationEvent()



第554行即 finishRefresh() 是容器创建完毕,点进去的
publishEvent(new ContextRefreshedEvent(this));就是派发容器创建完毕事件。


我们也可以自己实现ApplicationListener 来实现onApplicationEvent方法来编写自己的业务。





原文地址:https://www.cnblogs.com/cndou/p/14958563.html