prepareBeanFactory 【标准初始化】

为了接下来使用BeanFactory 做准备
为BeanFactory 做些标准的设置

  1. 为内部的BeanFactory设置类加载器
  2. 设置表达式解析器,属性编辑器。
  3. 注册BeanPostProcessor(ApplicationContextAwareProcessor,ApplicationListenerDetector),
    • ApplicationContextAwareProcessor:对Spring 中各种Aware接口的支持,在初始化Bean前,调用Bean实现的Aware接口方法。
    • ApplicationListenerDetector:用于收集实现了ApplicationListener接口的Bean
  4. 注册指定的依赖类型和对应的value,
    • 例如:beanFactory.registerResolvableDependency(ResourceLoader.class, this);那么在类中自动注入ResourceLoader类型的对象,就会拿到当前IOC容器。
  5. 注入一些其它信息的bean,比如environment、systemProperties等

    postProcessBeanFactory为工厂添加后置处理器

    用于在BeanFactory 完成标准的初始化之后修改BeanFactory。不同容器根据自己的需求添加特殊的后置处理器,
    EmbeddedWebApplicationContext 容器在这里添加了对ServletContextAware支持的Bean后置处理器(WebApplicationContextServletContextAwareProcessor)。