spring-context

1, ApplicationContext

ApplicationContext-1.png
ApplicationContext-2.png

分析一下基于xml的ClassPathXmlApplicationContext和GenericXmlApplicationContext,以及基于注解的AnnotationConfigApplicationContext的实现机制

2, ClassPathXmlApplicationContext

类层次.png

2.1 DefaultResourceLoader

getResource.png

根据指定的location的协议(file:/classpath:)加载指定资源。

2.2 AbstractApplicationContext

状态.png
refresh.png

实现ApplicationContext,委托细节给子类实现。

2.3 AbstractRefreshableApplicationContext

状态.png

配置内部的beanFactory

2.4 AbstractRefreshableConfigApplicationContext

状态.png

设置配置文件地址

2.5 AbstractXmlApplicationContext

loadBeanDefinitions.png
loadBeanDefinitions.png

从xml中加载BeanDefinition

2.6 ClassPathXmlApplicationContext

配置configResources

3 AnnotationConfigApplicationContext

registerAnnotationConfigProcessors.png

注册各种处理注解的BeanPostProcessor

ApplicationContext最核心的就是依赖内部的DefaultListableBeanFactory实现bean管理功能,依赖内部的ConfigurableEnvironment实现管理profile以及提供基于各种PropertySource的key查找功能

你可能感兴趣的:(spring-context)