1.增强的功能
1.应用上下文提供了文本信息解析工具,包括对国际化的支持。
2.应用上下文提供了载入文件资源的通用方法,如载入图片。
3.应用上下文可以向注册为监听器的Bean发送事件。
2.区别
1.应用上下文与Bean工厂的重要区别之一是关于单实例Bean是的载入方式。Bean工厂延迟载入所有的Bean,直到getBean()方法被调用时Bean才被创建。应用上下文则聪明一点,它会在上下文启动后预载入所有的单实例Bean,通过预载入单实例Bean,确保当你需要的时候它们已经准备好,你的应用不需要等待它们被创建。
2.ApplicationContext和BeanFactory另一个很大的区别在于:ApplicationContext会利用Java反射机制自动判断出配置文件中定义的BeanPostProcessor、InstantiationAwareBeanPostProcessor和BeanFactoryPostProcessor,并自动将它们注册到应用上下文中;而BeanFactory需要在代码中通过手工调用addBeanPostProcessor()方法进行注册.这也是为什么在应用开发时,我们普遍使用ApplicationContext而很少使用BeanFactory的原因之一.