Spring容器的创建
Spring容器refresh()【创建刷新】
BeanFactory的预准备工作
prepareRefresh();刷新的预处理
- initPropertySources()初始化一些属性设置;子类自定义个性化的属性设置方法
- getEnvironment().validateRequiredProperties();校验属性合法
- this.earlyApplicationEvents = new LinkedHashSet<ApplicationEvent>();保存容器中一些早期的事件
obtainFreshBeanFactory();
- refreshBeanFactory();刷新beanFactory
创建了一个 this.beanFactory = new DefaultListableBeanFactory();
设置id;
- getBeanFactory();返回GenericApplicationContext创建好的BeanFactory
Factory【DefaultListableBeanFactory】返回
prepareBeanFactory(beanFactory);BeanFactory的预准备工作
- 设置BeanFactory的类加载器,支持表达式解析器
- 添加部分的BeanPostProcessor【ApplicationContextAwareProcessor】
- 设置忽略的自动装配接口,EnvironmentAware,EmbeddedValueResolverAware
- registerResolvableDependency,注册可以解析的自动装配,能直接在任何组件中注入,
BeanFactory,ResourceLoader,ApplicationEventPublisher,ApplicationContext
- 添加BeanPostProcessor【ApplicationListenerDetector】
- 添加编译时的AspectJ;
- 给BeanFactory中注册一些能用的组件,
environment【ConfigurableEnvironment】,
systemProperties【Map<String,Object>】,
systemEnvironment【Map<String,Object>】
postProcessBeanFactory(beanFactory);BeanFactory准备工作完成后的后置处理工作
- 子类通过重写这个方法在beanFactory创建并准备完成后做进一步的设置
以上是 Spring容器的创建 的全部内容, 来源链接: utcz.com/z/516959.html