一、初始化事件派发器
8、refresh()
方法调用initApplicationEventMulticaster()
方法初始化事件派发器
首先获取BeanFactory
然后从BeanFactory
中获取id
为applicationEventMulticaster
且类型是ApplicationEventMulticaster
的事件派发器
如果上一步容器中没有配置事件派发器,就会创建一个SimpleApplicationEventMulticaster
类型的事件派发器,并将这个事件派发器添加到BeanFactory
中,以后其它组件可以直接自动注入来使用
9、refresh()
的onRefresh()
方法是留给子类的,可以让子容器,即子类重写这个方法,在容器刷新的时候自定义一些其它处理逻辑
10、refresh()
调用registerListeners()
方法,将项目中所有的ApplicationListener
监听器注册到容器中
从容器中获取到所有的ApplicationListener
,并将每一个监听器添加到派发器中
如果有一些早期的事件,就会直接先派发这些早期事件