[Spring] BeanFactory与ApplicationContext之间的区别

BeanFactory与ApplicationContext的4个区别1个缺陷

目录

BeanFactory和ApplicationContext之间的关系及功能:

BeanFactory和ApplicationContext的加载形式:

BeanFactroy和ApplicationContext的注册方式:

BeanFactroy和ApplicationContext的创建方式:

BeanFactroy和ApplicationContext存在的缺陷:


BeanFactory和ApplicationContext都是Spring的两大核心接口,它们都可以当作Spring容器。

但它们之间也是有很大的区别的,我们可以从以下几个方面入手区分:

  1. BeanFactory和ApplicationContext之间的关系及功能
  2. BeanFactory和ApplicationContext的加载形式
  3. BeanFactroy和ApplicationContext的注册方式
  4. BeanFactroy和ApplicationContext的创建方式
  5. BeanFactroy和ApplicationContext存在的缺陷

BeanFactory和ApplicationContext之间的关系及功能:

BeanFactory是Spring中最底层的接口,是IOC的核心,定义了IOC的各种基本功能,包含各种bean的定义、加载、实例化、依赖注入和生命周期管理。

ApplicationContext接口则是BeanFactory的子类。除了提供BeanFactory具有的所有方法以外还提供更完整的框架功能:继承MessageSource,因此支持国际化、资源文件访问、同时加载多个配置文件等。

//底层代码,ApplicationContext为BeanFactory的子类

public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory,MessageSource, ApplicationEventPublisher, ResourcePatternResolver {

    //各种方法...

}

BeanFactory和ApplicationContext的加载形式:

BeanFactory采用的是延迟加载的形式来注入bean,只有用到bean时才会对该Bean进行加载实例化。

ApplicationContext采用的是即时加载,在容器启动时,一次性加载所有Bean,可以提前发现Spring配置问题。

BeanFactroy和ApplicationContext的注册方式:

BeanFactory需要手动注册。

ApplicationContetx可以自动注册。

BeanFactroy和ApplicationContext的创建方式:

BeanFactory通常以编程的方式创建。

ApplicationContext可以以声明的方式创建。

BeanFactroy和ApplicationContext存在的缺陷:

BeanFactory:延迟加载的方式导致了不能提前发现所存在的一些Spring配置问题

ApplicationContext:即时加载的方式也导致其占用空间内存。当程序配置的Bean数量较多时,启动速度会慢。

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值