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();//事件广播器生命周期

相关文章
相关标签/搜索