上图的执行流程是怎样的?
org.springframework.context.support.AbstractApplicationContext#finishRefresh
发布一个容器刷新事件
org.springframework.context.event.SimpleApplicationEventMulticaster#multicastEvent(org.springframework.context.ApplicationEvent, org.springframework.core.ResolvableType)
org.springframework.context.event.SimpleApplicationEventMulticaster#invokeListener
进行回调
注意一个问题:
org.springframework.context.support.AbstractApplicationContext#getApplicationEventMulticaster
这个广播器从哪里来?
org.springframework.context.support.AbstractApplicationContext#initApplicationEventMulticaster
如果容器中没有就会注册一个SimpleApplicationEventMulticaster供后续使用
spring的默认事件:有6个,我们常用的就4个,如果我监听容器关闭事件,当容器刷新的时候能执行方法吗?
答案:不能
这里会根据事件拿到所有的监听器