prepareBeanFactory 【标准初始化】
为了接下来使用BeanFactory 做准备
为BeanFactory 做些标准的设置
- 为内部的BeanFactory设置类加载器
- 设置表达式解析器,属性编辑器。
- 注册BeanPostProcessor(ApplicationContextAwareProcessor,ApplicationListenerDetector),
- ApplicationContextAwareProcessor:对Spring 中各种Aware接口的支持,在初始化Bean前,调用Bean实现的Aware接口方法。
- ApplicationListenerDetector:用于收集实现了ApplicationListener接口的Bean
- 注册指定的依赖类型和对应的value,
- 例如:beanFactory.registerResolvableDependency(ResourceLoader.class, this);那么在类中自动注入ResourceLoader类型的对象,就会拿到当前IOC容器。
- 注入一些其它信息的bean,比如environment、systemProperties等
postProcessBeanFactory为工厂添加后置处理器
用于在BeanFactory 完成标准的初始化之后修改BeanFactory。不同容器根据自己的需求添加特殊的后置处理器,
EmbeddedWebApplicationContext 容器在这里添加了对ServletContextAware支持的Bean后置处理器(WebApplicationContextServletContextAwareProcessor)。