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");
就能直接抛出异常
|
|
分享到:
相关推荐
Spring中ApplicationContext和beanfactory区别.rar
NULL 博文链接:https://364232252.iteye.com/blog/2369489
ApplicationContext及它的3种实现
applicationContext applicationContext
这是一些配置文件,可以作为参考,个人感觉很方便的学习方法
spring 获得applicationcontext公用方法
struts.xml和applicationContext.xml、web.xml的配置
这份代码主要适用于我写的一篇博客的资源,主要是想通过简短的代码来帮助我们更清晰的理解IoC实现思路,代码一式两份,分别是纯代码和注解方式。
Spring中ApplicationContext加载机制
国际物流云商项目server_web子工程中的applicationContext.xml配置文件。
Spring中ApplicationContext对事件传递
详解Spring的applicationContext.xml文件代码:
包括国际化,Spring中的运行环境,Spring中的资源,Spring中的事件监听机制,还剩唯一一个BeanFactory相关的内容没有介绍,这篇文章我们就来介绍BeanFactory,这篇文章结束,关于ApplicationContext相关的内容我们也...
使用myeclipse8.5搭建SSH后,将struts.xml和applicationContext.xml移动到别的地方,示例中为webroot下的config文件夹中,web.xml中需要做的修改示例。其中对于返回上一层方式不同的myeclipse可能不同,如有的用../...
在SSH的applicationContext.xml 中如何配制配制事务
applicationContext.xml 详细配置
从加载过程我们可以看到,首先从Servlet事件中得到ServletContext,然后可以读到配置好的在web.xml的中的各个属性值,然后ContextLoder实例化WebApplicationContext并完成其载入和初始化作为根上下文。当这个根上...
Web服务器实例化ApplicationContext容器时,通常会使用ContextLoaderListener来实现,此种方式只需要在web.xml中添加如下代码: <context-param> <param-name>contextConfigLocation</param-name> <param-value> ...
(2)BeanFactory与ApplicationContext: ApplicationContext内部封装了BeanFactory,功能更加强大。 加载xml文件使用ClassPathXmlApplicationContext("applicationContext.xml") (3)BeanFactory(bean工厂)与...
Spring Web MVC开发 xml配置文件格式,无bean之类 Spring Web MVC开发配置文件 applicationContext