1,两者都是通过xml配置文件加载bean,ApplicationContext和BeanFacotry相比,提供了更多的扩展功能,但其主要区别在于后者是延迟加载,如果Bean的某一个属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常;而ApplicationContext则在初始化自身是检验,这样有利于检查所依赖属性是否注入;所以通常情况下我们选择使用ApplicationContext.
2,BeanFactory 还是 ApplicationContext?
简单的说:除非你有更好的理由,否则尽量使用ApplicationContext,下面是对于哪些"为什么"等等更深入的建议
ApplicationContext包含BeanFactory的所有功能。通常建议比BeanFactory优先,除非有一些限制的场合如字节长度对内存有很大的影响时(Applet)。然后,绝大多数"典型的"企业应用和系统,ApplicationContext就是你需要使用的。Spring2.0及以上版本,大量使用了link linkend="beans-factory-extension-bpp">BeanPostProcessor扩展(以便应用代理等功能),如果你选择BeanFactory则无法使用相当多的支持功能,如事务和AOP,这可能会导致混乱,因为配置并没有错误。
下面的功能矩阵列出了BeanFactory提供的功能和ApplicationContext提供的功能(包括其实现)。(下一节更深度的描述了ApplicationContext比BeanFactory更强的功能。)
表 3.5. Feature Matrix特性表
特性 BeanFactory ApplicationContext
Bean 实例化/装配 Yes Yes
自动 BeanPostProcessor 注册 No Yes
自动 BeanFactoryPostProcessor 注册 No Yes
便捷的 MessageSource 访问( i18n) No Yes
ApplicationEvent 发送 No Yes
分享到:
相关推荐
在Spring框架中,BeanFactory和ApplicationContext是两种不同的bean容器,它们各自有其特性和应用场景,理解二者的区别对于深入掌握Spring框架至关重要。 首先,BeanFactory是Spring中最基本的bean容器,它提供了对...
在Spring框架中,ApplicationContext和BeanFactory是两种不同的bean容器,它们各自有其特性和应用场景,理解二者的区别对于深入学习和使用Spring至关重要。 首先,BeanFactory是Spring中最基础的bean管理容器,它...
简单了解Spring中BeanFactory与FactoryBean的区别 Spring框架中有两个非常关键的接口:BeanFactory和FactoryBean。虽然它们的名字相似,但它们的作用和实现机制却有很大的不同。 BeanFactory是Spring IoC容器的...
`BeanFactory`是Spring框架中最基础的bean管理容器,它是所有更高级别的容器(如`ApplicationContext`)的基类。它负责实例化、配置、存储和管理bean。在实际的Spring框架中,`BeanFactory`接口提供了许多方法,如`...
ApplicationContext是Spring框架中的核心组件之一,它是Bean工厂的高级形式,提供了更多企业级的功能。在这个主题中,我们将深入探讨ApplicationContext的内部机制和关键功能。 ApplicationContext的主要职责是加载...
Spring框架作为Java EE开发中非常流行和强大的框架之一,为Java应用提供了全面的基础设施支持。在Spring中,ApplicationContext(应用程序上下文)是容器的核心,负责配置和管理应用中对象的生命周期和依赖关系。在...
Spring的IoC容器是其核心特性之一,它通过BeanFactory和ApplicationContext两个主要接口来实现控制反转(Inversion of Control,IoC)的概念。BeanFactory作为基础的IoC容器,提供了全面的IoC服务,包括对象的注册、...
三、BeanFactory与ApplicationContext的区别 虽然BeanFactory是基础,但实际开发中更多使用的是其子类ApplicationContext。ApplicationContext除了具备BeanFactory的所有功能外,还添加了以下特性: 1. **资源加载**...
在Java的Spring框架中,`BeanFactory`和`ApplicationContext`是两个非常重要的核心概念,它们是IoC(Inversion of Control,控制反转)容器的实现,用于管理应用程序中的对象和依赖关系。理解这两个容器的区别和用途...
在Spring框架中,BeanFactory和FactoryBean是两个重要的接口,它们各自扮演着不同的角色,但都与Spring容器的管理和创建对象密切相关。 **BeanFactory接口**是Spring容器的基础,它是整个Spring IoC(Inversion of ...
`ApplicationContext`是Spring框架的核心组件,它是Bean工厂(`BeanFactory`)的扩展,提供了更多高级特性,如国际化支持、事件发布、AOP代理等。通常,我们可以通过XML配置文件、注解或Java配置类来创建`...
在实际开发中,开发者可以根据需求选择适合的配置方式,利用Spring的BeanFactory或其高级版本ApplicationContext,灵活管理应用中的bean。同时,通过了解BeanFactory解析XML的过程,我们可以更好地优化配置,提高...
在Spring框架中,ApplicationContext是核心组件之一,它不仅包含了Bean的管理,还提供了许多高级特性。在本篇文章中,我们将深入探讨剩余的重要概念——BeanFactory,它是ApplicationContext的基础,同时也是Spring...
3. **BeanFactory与ApplicationContext的区别** BeanFactory是Spring中最基本的容器,它负责创建、管理和查找bean。ApplicationContext则在BeanFactory的基础上增加了很多企业级服务,如国际化、事件广播、应用上...
- **BeanFactory与ApplicationContext:** - **BeanFactory** 是最基础的容器,提供了依赖注入功能,负责实例化、定位、配置应用中的对象以及建立这些对象间的依赖关系。 - **ApplicationContext** 是BeanFactory...
5. BeanFactory和ApplicationContext的区别: BeanFactory是最基本的容器,提供基本的依赖注入功能。ApplicationContext则更为强大,除了BeanFactory的所有功能外,还提供了应用级服务,如消息资源处理、事件广播、...
在 Spring 项目中,可以从文件系统资源实例化 BeanFactory,这种方法可以使得 BeanFactory 从外部文件中加载 Bean 的定义。下面是一个简单的示例代码: ```java Resource res = new FileSystemResource("src\\...
2. **与其他框架集成**:Spring可以很好地与现有的WebWork、Struts或Tapestry等UI框架配合,通过ApplicationContext和WebApplicationContext进行业务逻辑和前端的集成,同时利用Spring的事务管理服务。 3. **远程...
在Spring框架中,BeanFactory是Spring早期的接口,称之为Spring的Bean工厂。ApplicationContext是后期更高级的接口,称之为Spring容器。ApplicationContext对BeanFactory之上做了功能扩展,例如监听功能、国际化功能...