`

(转)FileSystemXmlApplicationContext、ClassPathXmlApplicationContext和XmlWebApplicat

 
阅读更多

今天在用Spring时遇到一个问题,提示找不到applicationContext.xml文件。原来是在加载这个文件时调用的方法不太合适,所以造成了程序找不到项目下的xml配置文件。

 

我们常用的加载context文件的方法有如下三个:

 

1、FileSystemXmlApplicationContext

这个方法是从文件绝对路径加载配置文件,例如:

ApplicationContext ctx = new FileSystemXmlApplicationContext( "G:/Test/applicationcontext.xml ");

如果在参数中写的不是绝对路径,那么方法调用的时候也会默认用绝对路径来找,我测试的时候发现默认的绝对路径是eclipse所在的路径。

采用绝对路径的话,程序的灵活性就很差了,所以这个方法一般不推荐。

如果要使用classpath路径,需要加入前缀classpath:   

 

2、ClassPathXmlApplicationContext

这个方法是从classpath下加载配置文件(适合于相对路径方式加载),例如:

ApplicationContext ctx = new ClassPathXmlApplicationContext( "/applicationcontext.xml ");

该方法参数中classpath: 前缀是不需要的,默认就是指项目的classpath路径下面;这也就是说用ClassPathXmlApplicationContext时默认的根目录是在WEB-INF/classes下面,而不是项目根目录。这个需要注意!

 

3、XmlWebApplicationContext

专为web工程定制的方法,推荐Web项目中使用。例如:

ServletContext servletContext = request.getSession().getServletContext();

ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);

分享到:
评论

相关推荐

    maven相关资料

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

    spring读取配置文件

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

    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"); 一般用第...

    spring和java的定时器

    spring和java的定时器 BeanFactory beans=new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext1.xml");

    SSM考试题库1

    5、FileSystemXmlApplicationContext :由文件系统中的XML配置文件读取上下文 6、XmlWebApplicationContex

    Spring.html

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

    demo:java生产项目常用的demo

    java生产项目常用的demo 文档比较长,有兴趣查看的可以安装一个: ...常用实现类:FileSystemXmlApplicationContext 1.1.3.启动过程 ioc容器的启动过程分为三个过程分别是:定位,载入,注册这三个基本过程 将这三

    SPRING API 2.0.CHM

    FileSystemXmlApplicationContext FilterDefinitionFactoryBean FixedLocaleResolver FixedThemeResolver FormTag FrameworkPortlet FrameworkServlet FreeMarkerConfig FreeMarkerConfigurationFactory ...

Global site tag (gtag.js) - Google Analytics