ApplicationContext的应用场景

1.上一节中我们了解了IoC容器建立的基本步骤。理解这些步骤之后,可以很方便地通过编程的方式手工控制这些配置容器的建立过程了。

2.但是,在Spring中,系统已经为用户提供了许多已经定义好的容器实现,而不需要开发人员事必躬亲

3.相比那些简单扩展BeanFactory的基本IoC容器,开发人员常用的ApplicationContext除了能够提供前面介绍的容器的基本功能外,还为用户提供了以下的附加服务,可以让客户更方便地使用。所以说,ApplicationContext是一个高级形态意义的IoC容器。

4.ApplicationContext提供了以下BeanFactory不具备的新特性

  • 支持不同的信息源。我们看到ApplicationContext扩展了MessageSource接口,这些信息源的扩展功能可以支持国际化的实现,为开发多语言版本的应用提供服务。
  • 访问资源。这一特性体现在对ResourceLoaderResource的支持上,这样我们可以从不同地方得到Bean定义资源。这种抽象使用户程序可以灵活地定义Bean定义信息,尤其是从不同的I/O途径得到Bean定义信息。这在接口关系上看不出来,不过一般来说,具体ApplicationContext都是继承DefaultResourceLoader的子类。因为DefaultResourceLoaderAbstractApplicationContext的基类,关于Resource在IoC容器中的使用,后面会有详细的讲解。
  • 支持应用事件。继承了接口ApplicationEventPublisher,从而在上下文中引入了事件机制。这些事件Bean的生命周期的结合为Bean的管理提供了便利。
  • 在ApplicationContext中提供的附加服务。这些服务使得基本IoC容器的功能更丰富。因为具备了这些丰富的附加功能,使得ApplicationContext与简单的BeanFactory相比,对它的使用是一种面向框架的使用风格,所以一般建议在开发应用时使用ApplicationContext作为IoC容器的基本形式
时间: 2024-08-01 13:36:52

ApplicationContext的应用场景的相关文章

读《Spring-技术内幕》-第二章:IoC容器的实现-2

IoC容器系列的设计与实现 概要 博客介绍了BeanFactory这个容器的基本接口,如getBean(String name),containsBean(String name)等等,但是这些接口并没有具体的实现,因此给出了XmlBeanFactory容器的实现过程,还用编程的方式使用了DefaultListableBeanFactory这个容器,成功得获得了在BeanDefinition中定义的一个Bean.通过编程式的使用,让我们明白IoC容器中的关键的类之间的相互依赖关系,如Resour

Spring技术内幕——Spring Framework的IOC容器实现(一)

一.SpringIOC容器概述 IOC容器和依赖反转的模式 在面向对象的系统中,对象封装了数据和对数据的处理,对象的依赖关系常常体现在对数据和方法的依赖上.这些依赖关系可以通过把对象的依赖注入交给框架IOC容器来完成.他可以再解耦代码的同时提高了代码的可测试性. 依赖控制反转的实现由很多种方式,在Spring中,IOC容器是实现这个模式的载体,他可以再对象生成或者初始化时直接将数据注入到对象中,也可以通过将对象引用注入到对象数据域中的方式来注入对方法调用的依赖.这种依赖注入是可以递归的,对象被逐

《Spring技术内幕》笔记-第二章 IoC容器的实现

简介 1,在Spring中,SpringIoC提供了一个基本的JavaBean容器,通过IoC模式管理依赖关系,并通过依赖注入和AOP切面增强了为JavaBean这样子的POJO提供事务管理,生命周期管理等功能. 2,Spring IoC的设计中,主要包含两个主要的容器系列: -1,BeanFactory系列,该序列实现了容器的基本功能. -2,ApplicationContext应用上下文. Spring IoC容器的设计 1,如下图,IoC容器的接口设计图. 2,简介 -1,从BeanFac

Spring是如何管理Bean

容器是什么?spring中是如何体现的?一直有疑惑,这两天看了一下Spring管理bean的Demo,对于Spring中的容器有了简单的认识. 我们知道,容器是一个空间的概念,一般理解为可盛放物体的地方.在Spring容器通常理解为BeanFactory或者ApplicationContext.我们知道spring的IOC容器能够帮我们创建对象,对象交给spring管理之后我们就不用手动去new对象. 其中有BeanFactory与ApplicationContext两种方式可以创建对象. 那么

玄学springboot applicationcontext.getBean(用类名String还是类型Class), getBean(..)的调用场景结果不同?getBean(..)还会阻塞?@DependsOn按照名称依赖,那么getBean用类名String

springContextStati是一个实现了Applicationcontextaware的类的名字,可以getBean(..)RegistryTask是一个在RegistryServer调用netty封装的channelinitializer时候,的clienthandler被触发读事件的时候 new 的 @Component @DependsOn(value={"springContextStatic","normalConfig","channe

《Spring揭秘》(十) ---- ApplicationContext之统一资源加载策略

Spring的resource Spring框架内部使用Resource接口作为所有资源的抽象和接口.例如: BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("...")); ClassPathResource就是Resource的一个特定类型的实现,代表的实位于Classpath中的资源. Resource接口可以根据资源的不同类型,或者资源所处的不同场合,给出相应的具体实现: a. ByteArr

学习Spring——两个你熟悉的不能再熟悉的场景使用

最近公众号受邀获取了留言和赠送模板的权限,小开心(欢迎去公众号JackieZheng围观). 我们大致的了解了Spring这个框架对于依赖注入的使用和诠释可谓是淋漓尽致.因为有了Spring的这个IOC也好DI也好,我们把上街买菜的事情变成了菜主动送上门的活,这样的“生活方式”大大的提高了我们对于Spring框架的用户体验. 今天主要说两件事,想必凡是稍稍接触过Spring框架开发的对于这些场景肯定都是眼熟透了——Spring如何使用多个外部属性文件以及基于注解方式配置Bean. 1. Spri

Context与ApplicationContext

Android开发中经常会用到Context,从英文角度释义“场景”.从程序角度,Context是一个抽象类,通过代码可以发现Activity.Service.Application都是Context的子类. Activity.Service.Application都是继承自ContextWrapper. 接下来我们来看看Context与ApplicationContext,前者是Activity的Context,后者是Application的Context. Activity的Context肯

架构设计:系统间通信(31)——其他消息中间件及场景应用(下1)

接上文:<架构设计:系统间通信(30)--Kafka及场景应用(中3)> 5.场景应用--电商平台:浏览记录收集功能 事件/日志收集系统是大中型软件不得不面对的话题.目前第三方业务系统对 事件/日志收集系统 的集成思路主要有两大类:侵入式收集方案和非侵入式收集方案.侵入式收集方案,是指任何需要使用事件/日志收集系统的第三方系统,都需要做有针对的编码工作,这个编码工作或者是新增代码用于调用 事件/日志收集系统 提供的客户端API,又或者是修改已有的代码,以便适应事件/日志收集系统的调用特性. 侵