BeanFactory和ApplicationContext的区别是什么呢?
下文笔者讲述BeanFactory和ApplicationContext的区别,如下所示
BeanFactory和ApplicationContext的简介
BeanFactory和ApplicationContext是Spring的两大核心接口
都可以作为Spring容器
ApplicationContext是BeanFactory子接口
BeanFactory的功能
BeanFactory:
Spring中最底层的接口
其中拥有Bean定义,获取bean配置信息,
管理bean的加载、实例化及控制bean生命周期
维护bean之间依赖关系
ApplicationContext接口简介
ApplicationContext接口是BeanFactory的子接口
除拥有BeanFactory的功能外,
还拥有更完整的框架功能:
1.继承MessageSource,因此支持国际化。
2.统一的资源文件访问方式。
3.提供在监听器中注册bean的事件。
4.同时加载多个配置文件。
5.载入多个(有继承关系)上下文,
使得每一个上下文都专注于一个特定的层次
如:
应用的web层
BeanFactory和ApplicationContext的区别
区别1:加载方式
BeanFactroy采用的是延迟加载形式来注入Bean的,
即只有在使用到某个Bean时(调用getBean()),才对该Bean进行加载实例化
ApplicationContext:容器启动时,一次性创建了所有的Bean
区别2:创建方式
BeanFactory通常以编程的方式被创建
ApplicationContext还可使用声明的方式创建
如:
使用ContextLoader。
区别3:注册方式
BeanFactory和ApplicationContext都支持BeanPostProcessor、BeanFactoryPostProcessor的使用
两者之间的区别是:
BeanFactory需要手动注册
ApplicationContext则是自动注册
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


