`

web 代码中 如何获得 applicationcontext 及与 beanfactory 区别

阅读更多

WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());

 

 

 


ApplicationContext和BeanFacotry相比,提供了更多的扩展功能,但其主要区别在于后者是延迟加载,
如果Bean的某一个属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常;
而ApplicationContext则在初始化自身是检验,这样有利于检查所依赖属性是否注入;
所以通常情况下我们选择使用ApplicationContext.

 

 

 

在Spring中,BeanFactory是IoC容器的核心接口。 它的职责包括:实例化、定位、配置

应用程序中的对象及建立这些对象间的依赖。

Spring为我们提供了许多易用的BeanFactory实现, XmlBeanFactory就是最常用的一个。

该实现将以XML方式描述组成应用的对象 以

及对象间的依赖关系。XmlBeanFactory类将获取此XML配 置元数据,并用它来构建一个完

全可配置的系统或应用。

BeanFactory 提供的高级配置机制,使得管理各种对象成为可能。 ApplicationContext

是BeanFactory的扩展,功能得到了进一步增强,比如更易 与Spring AOP集成、资源处理

(国际化处理)、事件传递及各种不同应用层的context实现 (如针对web应用的WebApplicationContext)。

简而言之,BeanFactory提供了配制框架及基本功能,而 ApplicationContext 则增加了

更多支持企业核心内容的功能。 ApplicationContext完全由BeanFactory扩展而来,

因而BeanFactory所具备的能力和行为也适用于ApplicationContext。

使 用getBean(String) 方法就可以取得bean的实例;BeanFactory 提供的方法极其简单。 BeanFactory接口提供 了非常多的方法,但是对于我们的应用来说,最好永远不要调用它们,当然也包括 使用getBean(String)方法,这样可以避免我们对 Spring API的依赖。

BeanFactory 同时也不具备 编译spring配置文件的功能 在容器初始化时 如果applicationContext出现错误时

BeanFactory并不能及时察觉,必须等待第一次获取bean的实例时才能抛出异常

比如实例化 BeanFactory

Resource res = new FileSystemResource("applicationContext.xml");  
  BeanFactory factory = new XmlBeanFactory(res);  

Resource resClasspath = new ClassPathResource("applicationContext.xml.xml");  
  BeanFactory factory2 = new XmlBeanFactory(resClasspath);  
获得BeanFactory实例时 不能检查错误

User u=(User)u.getBean("user");

当获得对象实例时 方可抛出异常

而实例化ApplicationContext

ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");

就能直接抛出异常

 

 

 

 

分享到:
评论

相关推荐

    ApplicationContext及它的3种实现

    ### ApplicationContext及它的3种实现 #### 一、概述 在Spring框架中,`ApplicationContext`是`BeanFactory`接口的一个扩展,提供了更为丰富的功能和服务。它不仅继承了`BeanFactory`的所有特性,还增加了如资源...

    spring 获得applicationcontext公用方法

    综上所述,`Spring 获得applicationcontext公用方法`涉及了Spring框架中的核心概念,包括`ApplicationContext`的创建、获取以及在实际项目中的使用方式。通过`MyApplicationContextUtil`这样的静态工具类,我们可以...

    BeanFactory面向接口编程测试工程

    在Java Web开发中,BeanFactory是Spring框架的核心组件之一,它是工厂模式的一种实现,主要用于管理对象(也称为bean)的创建、配置和依赖注入。面向接口编程是一种编程范式,鼓励开发者通过接口来定义功能,而不是...

    spring源代码解析

    从加载过程我们可以看到,首先从Servlet事件中得到ServletContext,然后可以读到配置好的在web.xml的中的各个属性值,然后ContextLoder实例化WebApplicationContext并完成其载入和初始化作为根上下文。当这个根上...

    Spring面试专题

    3. **BeanFactory与ApplicationContext的区别** BeanFactory是Spring中最基本的容器,它负责创建、管理和查找bean。ApplicationContext则在BeanFactory的基础上增加了很多企业级服务,如国际化、事件广播、应用上...

    专题资料(2021-2022年)Java项目教学第一学期SSM框架讲义1Spring的基本应用.docx

    - ApplicationContext 除了 BeanFactory 功能外,还能处理国际化、资源访问等,是 Web 应用中的常见选择。 - 在 Web 项目中,ApplicationContext 的初始化常通过 ContextLoaderListener 实现,配置在 `web.xml` 中。...

    Sping翻转控制器

    ##### 1.2 BeanFactory与ApplicationContext接口 - **BeanFactory**:最基础的IoC容器接口,提供了创建、配置和管理Bean的基本功能。 - **ApplicationContext**:BeanFactory的子接口,提供更丰富的功能,如国际化...

    Spring面试专题及答案.pdf

    - ApplicationContext:ApplicationContext是BeanFactory的扩展,它提供了更多的企业级功能,如支持国际化、消息资源、事件传播、以及Web应用中的WebApplicationContext。它在BeanFactory的基础上增加了许多企业级...

    spring编程详细说明

    在Spring中,bean是被容器初始化、装配和管理的对象,它们与其他应用对象并无本质区别,只是生命周期和依赖关系由容器控制。bean定义包括类信息、属性值、依赖的其他bean等,这些信息通过配置元数据传递给容器。...

    spring的ppt

    Spring框架是Java开发中的一个核心组件,主要用于解决企业级应用中的复杂依赖管理和代码解耦问题。Spring技术专题主要围绕IoC(Inversion of Control)容器展开,IoC也被称为依赖注入,是Spring的核心特性。 IoC的...

    基于java的企业级应用开发:Spring的核心容器.ppt

    在`web.xml`配置文件中,设置`<context-param>`和`<listener>`元素,指定配置文件的位置,这样当Web服务器启动时,`ContextLoaderListener`会自动创建ApplicationContext。 ApplicationContext的实例化完成后,我们...

    Spring源代码解析(一):IOC容器.doc

    在实际使用中,Spring通常使用ApplicationContext接口,它扩展了BeanFactory并提供了额外的功能,如事件发布、消息源支持和国际化。ApplicationContext通常是从XML文件、Java配置类或注解中加载Bean定义的。 理解...

    Spring面试专题及答案整理1

    **BeanFactory和ApplicationContext的区别**: - BeanFactory是基本的容器,只负责bean的实例化和依赖注入。 - ApplicationContext除了具备BeanFactory的所有功能,还提供了更多高级特性,如国际化、事件发布、应用...

    Spring高级篇.pdf

    当比较BeanFactory和ApplicationContext时,我们发现两者都是IoC容器,但ApplicationContext是BeanFactory的超集,它提供了更多企业级服务,例如支持Web应用的WebApplicationContext,它能更容易集成Spring MVC和...

    Spring面试题汇总(100问).pdf

    17. BeanFactory与ApplicationContext区别:BeanFactory是基本容器,延迟加载,适合小型应用;ApplicationContext提供更多的企业级服务,如国际化、事件发布,适合大型应用。 18. Spring依赖注入理解:依赖注入是...

    Java中Spring获取bean方法小结

    1. **BeanFactory与ApplicationContext** - **BeanFactory** 是Spring中最基础的IoC容器,负责管理和实例化Bean。它允许开发者定义Bean的生命周期和依赖关系,提供了低级别的配置选项。 - **ApplicationContext**...

    中软内部SPRING培训资料,绝对真实

    在Web开发中,Spring提供了与Servlet容器的集成,使得Spring的应用可以方便地部署在Web服务器上。此外,Spring还广泛整合了其他流行的技术,如Struts、Hibernate,形成了所谓的SSH(Spring、Struts、Hibernate)开发...

    spring-IOC代码

    BeanFactory是最基本的容器,提供了对Bean的管理,而ApplicationContext则在BeanFactory的基础上增加了更多的企业级服务,如消息支持、AOP(面向切面编程)等。 **三、Bean的定义与实例化** 在Spring中,应用对象...

    SSM复习题.docx

    在实际开发中,SSM框架的配置通常包括Spring的配置文件(如 applicationContext.xml),SpringMVC的配置文件(如 servlet-context.xml),以及MyBatis的配置文件(mybatis-config.xml)和Mapper接口及XML映射文件。...

Global site tag (gtag.js) - Google Analytics