3.4.2 ApplicationContext介绍
如果说BeanFactory是Spring的心脏,那么ApplicationContext就是完整的身躯了。ApplicationContext是由BeanFactory派生而来,提供了更多面向实际应用的功能。
ApplicationContext的初始化和BeanFactory有一个重大区别:BeanFactory在初始化容器时,并未实例化Bean,直到第一次访问某个Bean时才实例目标Bean;而ApplicationContext则在初始化应用上下文时就实例化所有单实例的Bean。
3.5.2 ApplicationContext 中Bean的生命周期
ApplicationContext和BeanFactory另一个最大的不同之处在于:前者会利用Java反射机制自动识别出配置文件中定义的BeanPostProcessor、InstantiationAwareBeanPostProcessor和BeanFactoryPostProcessor,并自动将他们呢注册到应用上下文中;而后者需要在代码中通过手工调用addBeanPostProcessor()方法进行注册。