`
liqita
  • 浏览: 287369 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ClassPathXmlApplicationContext,FileSystemXmlApplicationContext和 XmlWebApplicatio

阅读更多

ApplicationContext应用

  1. spring为ApplicationContext提供的3种实现分别为:ClassPathXmlApplicationContext,FileSystemXmlApplicationContext和 XmlWebApplicationContext,其中XmlWebApplicationContext是专为Web工程定制的。使用举例如下:  
  2.    1. FileSystemXmlApplicationContext  
  3.            eg1. ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml"); //加载单个配置文件  
  4.            eg2.  
  5.                    String[] locations = {"bean1.xml""bean2.xml""bean3.xml"};  
  6.                    ApplicationContext ctx = new FileSystemXmlApplicationContext(locations ); //加载多个配置文件  
  7.            eg3.          
  8.         ApplicationContext ctx =new FileSystemXmlApplicationContext("D:/project/bean.xml");//根据具体路径加载文件  
  9.   2. ClassPathXmlApplicationContext  
  10.            eg1.  ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");  
  11.            eg2.  
  12.                    String[] locations = {"bean1.xml""bean2.xml""bean3.xml"};  
  13.                    ApplicationContext ctx = new ClassPathXmlApplication(locations);  
  14.            注:其中FileSystemXmlApplicationContext和ClassPathXmlApplicationContext与 BeanFactory的xml文件定位方式一样是基于路径的。  
  15. 3. XmlWebApplicationContext  
  16.        eg1. ServletContext servletContext = request.getSession().getServletContext();      
  17.             ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);  
  18.   
  19.   
  20.   
  21. 注 : 一般是 ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());  
  22.   
  23.   
  24.  加载器目前有两种选择:ContextLoaderListener和ContextLoaderServlet。  
  25.          这两者在功能上完全等同,只是一个是基于Servlet2.3版本中新引入的Listener接口实现,而另一个基于Servlet接口实现。开发中可根据目标Web容器的实际情况进行选择。  
  26.   
  27. 配置非常简单,在web.xml中增加:  
  28. <listener>  
  29.        <listener-class>  
  30.           org.springframework.web.context.ContextLoaderListener  
  31.        </listener-class>  
  32. </listener>  
  33. 或:  
  34. <servlet>  
  35.          <servlet-name>context</servlet-name>  
  36.          <servlet-class>  
  37.            org.springframework.web.context.ContextLoaderServlet  
  38.          </servlet-class>  
  39.          <load-on-startup>1</load-on-startup>  
  40. </servlet>      
  41.   
  42.   
  43. 通过以上配置,Web容器会自动加载/WEB-INF/applicationContext.xml初始化  
  44. ApplicationContext 实例,如果需要指定配置文件位置,可通过context-param加以指定:  
  45. <context-param>  
  46.          <param-name>contextConfigLocation</param-name>  
  47.          <param-value>/WEB-INF/myApplicationContext.xml</param-value>  
  48. </context-param>  
  49.   
  50. 配置完成之后,即可通过  
  51. WebApplicationContextUtils.getWebApplicationContext 方法在Web应用中获取ApplicationContext引用。  
  52.   
  53. 如:ApplicationContext ctx=WebApplicationContextUtils.getWebApplicationContext();  
  54.          LoginAction action=(LoginAction)ctx.getBean("action");  
分享到:
评论

相关推荐

    spring读取配置文件

    spring读取配置不同目录下的配置文件,使用ClassPathXmlApplicationContext与FileSystemXmlApplicationContext

    spring容器的触发事件 ClassPathXmlApplicationContext的start()方法的用法

    spring容器的触发事件 ClassPathXmlApplicationContext的start()方法的用法

    模拟spring中的ClassPathXmlApplicationContext类的实现

    NULL 博文链接:https://gaojiewyh.iteye.com/blog/409606

    spring的基础(一)自己写的ClassPathXmlApplicationContext类

    NULL 博文链接:https://cuiran.iteye.com/blog/487385

    maven相关资料

    二、ClassPathXmlApplicationContext[只能读放在web-info/classes目录下的配置文件]和FileSystemXmlApplicationContext的区别 classpath:前缀是不需要的,默认就是指项目的classpath路径下面; 如果要使用绝对路径,...

    spring为ApplicationContext提供的3种实现分别为:ClassPathXmlApplicationContext

    NULL 博文链接:https://canfly2010.iteye.com/blog/443063

    Spring入门.docx

    加载xml文件使用ClassPathXmlApplicationContext("applicationContext.xml") (3)BeanFactory(bean工厂)与ApplicationContext(容器)对比: 所有在xml里配置的Bean标签最后都会转换为BeanDefinition对象存放在...

    程序间耦合.docx

    * ClassPathXmlApplicationContext:它可以加载类路径下的配置文件,要求配置文件必须在类路径下。不在的话,加载不了。(更常用) * FileSystemXmlApplicationContext:它可以加载磁盘任意路径下的配置文件(必须有...

    spring核心

    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); (2)ApplicationContext context = new FileSystemXmlApplicationContext ("applicationContext.xml"); 一般用第...

    testSpring

    信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@c1f10e: display name [org.springframework.context.support.ClassPathXmlApplicationContext@c1f10e]; startup date [Wed ...

    手写SpringIoc的XML实现方式

    手写SpringIoc的XML实现方式,仿照Spring底层Bean工厂类实现ClassPathXmlApplicationContext

    Spring.html

    ClassPathXmlApplicationContext:使用这个工厂创建对象,他会根据scope智能判断是否懒加载,如果是单例则创建容器时就会创建里面bean的实例,如果是多例在获取使用时才会创建bean实例 ...

    ActiveMQ-demo

    ApplicationContext ac = new ClassPathXmlApplicationContext("spring/applicationContext-jms-producer.xml"); //获取生产者发送消息服务接口 MessageSender messageSender = (MessageSender)ac.getBean...

    spring-circle-reference:用弹簧演示一个奇怪的圆圈参考警告

    Jan 17, 2015 1:36:28 AM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@41906a77:...

    基于java的企业级应用开发:Spring JdbcTemplate 的常用方法.ppt

    { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); JdbcTemplate jdTemplate =(JdbcTemplate) applicationContext.getBean("jdbcTemplate"); jdTemplate....

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

    在Java项目中,会通过ClassPathXmlApplicationContext类来实例化ApplicationContext容器。而在Web项目中,ApplicationContext容器的实例化工作会交由Web服务器来完成。 Web服务器实例化ApplicationContext容器时,...

    Spring原理模拟代码

    public class ClassPathXmlApplicationContext implements BeanFactory { private Map, Object&gt; beans = new HashMap, Object&gt;(); @SuppressWarnings("unchecked") public ClassPathXmlApplicationContext() ...

    spring技术入门相关源码

    ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); //输出spring容器 System.out.println(ctx); //打印加载的bean名称 System.out.println(java.util.Arrays....

    AOP基础实例对初学者非常有用

    package demo; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;

Global site tag (gtag.js) - Google Analytics