类图,用2张图拼接而成
java
下面说一下各个类(接口)的做用spring
Closeble jdk提供的,基于流的关闭 AutoCloseble JDK7,支持try() 自动关闭
提供start()与stop()方法
事件发布体系 post
SimpleApplicationEventMulticaster
负责注册,删除,与发布事件,相似于观察者模式。注册事件支持beanName,因此在建立SimpleApplicationEventMulticaster``须要一个BeanFactory
code
主要有如下几个方法:blog
void setEnvironment(ConfigurableEnvironment environment); void addBeanFactoryPostProcessor(BeanFactoryPostProcessor postProcessor);//BeanFactory后置处理器 void addApplicationListener(ApplicationListener<?> listener); void addProtocolResolver(ProtocolResolver resolver); void refresh() throws BeansException, IllegalStateException; void registerShutdownHook(); void close();
核心方法: public void refresh() throws BeansException, IllegalStateException;
接口
prepareRefresh();
//刷新准备,子类覆写
ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();
//组装BeanFactory
prepareBeanFactory(beanFactory);
//解决BeanFactory的Bean依赖,获取并设置ApplicationListern
postProcessBeanFactory(beanFactory);
//子类覆写
invokeBeanFactoryPostProcessors(beanFactory);
//处理BeanFacory后置处理器 registerBeanPostProcessors(beanFactory);
//注册Bean后置处理器
initMessageSource();
//i18n initApplicationEventMulticaster();
//事件广播器生命周期