spring application之AbstractApplicationContext

org.springframework.context.support.AbstractApplicationContext

類圖,用2張圖拼接而成
java

下面說一下各個類(接口)的做用spring

Closeble,AutoCloseble

Closeble jdk提供的,基於流的關閉
AutoCloseble JDK7,支持try() 自動關閉

org.springframework.context.Lifecycle 生命週期,啓動與關閉

提供start()與stop()方法

org.springframework.context.ApplicationEventPublisher

事件發佈體系 post

SimpleApplicationEventMulticaster負責註冊,刪除,與發佈事件,相似於觀察者模式。註冊事件支持beanName,因此在建立SimpleApplicationEventMulticaster``須要一個BeanFactorycode

ConfigurableApplicationContext

主要有如下幾個方法: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();

AbstractApplicationContext

核心方法: 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();//事件廣播器生命週期

相關文章
相關標籤/搜索