spring容器监听

spring容器监听_第1张图片

 上图的执行流程是怎样的?

org.springframework.context.support.AbstractApplicationContext#finishRefresh

发布一个容器刷新事件

 

 

org.springframework.context.event.SimpleApplicationEventMulticaster#multicastEvent(org.springframework.context.ApplicationEvent, org.springframework.core.ResolvableType)

spring容器监听_第2张图片

 

org.springframework.context.event.SimpleApplicationEventMulticaster#invokeListener

spring容器监听_第3张图片

 

进行回调

注意一个问题:

org.springframework.context.support.AbstractApplicationContext#getApplicationEventMulticaster

这个广播器从哪里来?

spring容器监听_第4张图片 

 org.springframework.context.support.AbstractApplicationContext#initApplicationEventMulticaster

spring容器监听_第5张图片

 如果容器中没有就会注册一个SimpleApplicationEventMulticaster供后续使用

 
  

spring的默认事件:有6个,我们常用的就4个,如果我监听容器关闭事件,当容器刷新的时候能执行方法吗?

spring容器监听_第6张图片

 

答案:不能

spring容器监听_第7张图片

这里会根据事件拿到所有的监听器

spring容器监听_第8张图片 

 

你可能感兴趣的:(spring)