48、[源码]-Spring容器创建-初始化事件派发器、监听器等
8、initApplicationEventMulticaster();初始化事件派发器;
- 获取BeanFactory
- 从BeanFactory中获取applicationEventMulticaster的ApplicationEventMulticaster;
- 如果上一步没有配置;创建一个SimpleApplicationEventMulticaster
- 将创建的ApplicationEventMulticaster添加到BeanFactory中,以后其他组件直接自动注入
9、onRefresh();留给子容器(子类)
- 子类重写这个方法,在容器刷新的时候可以自定义逻辑;
10、registerListeners();给容器中将所有项目里面的ApplicationListener注册进来;
- 从容器中拿到所有的ApplicationListener
getBeanNamesForType(ApplicationListener.class, true, false);
- 将每个监听器添加到事件派发器中;
getApplicationEventMulticaster().addApplicationListenerBean(listenerBeanName);
- 派发之前步骤产生的事件;
getApplicationEventMulticaster().multicastEvent(earlyEvent);