Spring容器的创建

编程

Spring容器refresh()【创建刷新】

BeanFactory的预准备工作

prepareRefresh();刷新的预处理

  1. initPropertySources()初始化一些属性设置;子类自定义个性化的属性设置方法
  2. getEnvironment().validateRequiredProperties();校验属性合法
  3. this.earlyApplicationEvents = new LinkedHashSet<ApplicationEvent>();保存容器中一些早期的事件

obtainFreshBeanFactory();

  1. refreshBeanFactory();刷新beanFactory

    创建了一个 this.beanFactory = new DefaultListableBeanFactory();

    设置id;

  2. getBeanFactory();返回GenericApplicationContext创建好的BeanFactory

    Factory【DefaultListableBeanFactory】返回

prepareBeanFactory(beanFactory);BeanFactory的预准备工作

  1. 设置BeanFactory的类加载器,支持表达式解析器
  2. 添加部分的BeanPostProcessor【ApplicationContextAwareProcessor】
  3. 设置忽略的自动装配接口,EnvironmentAware,EmbeddedValueResolverAware
  4. registerResolvableDependency,注册可以解析的自动装配,能直接在任何组件中注入,

    BeanFactory,ResourceLoader,ApplicationEventPublisher,ApplicationContext

  5. 添加BeanPostProcessor【ApplicationListenerDetector】
  6. 添加编译时的AspectJ;
  7. 给BeanFactory中注册一些能用的组件,

    environment【ConfigurableEnvironment】,

    systemProperties【Map<String,Object>】,

    systemEnvironment【Map<String,Object>】

postProcessBeanFactory(beanFactory);BeanFactory准备工作完成后的后置处理工作

  1. 子类通过重写这个方法在beanFactory创建并准备完成后做进一步的设置

以上是 Spring容器的创建 的全部内容, 来源链接: utcz.com/z/516959.html

回到顶部