類圖,用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();
//事件廣播器生命週期