第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方法来编写自己的业务。