FileSystemXmlApplicationContext、ClassPathXmlApplicationContext和XmlWebApplicationContext简介
2014-08-18 14:25
519 查看
今天在用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);
我们常用的加载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);
相关文章推荐
- ClassPathXmlApplicationContext和FileSystemXmlApplicationContext的路径设置祥解
- ClassPathXmlApplicationContext 和FileSystemXmlApplicationContext
- ClassPathXmlApplicationContext 和FileSystemXmlApplicationContext的区别
- Spring ClassPathXmlApplicationContext和FileSystemXmlApplicationContext
- FileSystemXmlApplicationContext和ClassPathXmlApplicationContext的区别
- ClassPathXmlApplicationContext 和FileSystemXmlApplicationContext的区别
- Spring ClassPathXmlApplicationContext和FileSystemXmlApplicationContext读取配置文件的方法
- ClassPathXmlApplicationContext和FileSystemXmlApplicationContext的路径设置、classpath
- spring mvc使用ClassPathXmlApplicationContext或FileSystemXmlApplicationContext和XmlWebApplicationContext类的操作其中 XmlWebApplicationContext是专为Web工程定制的。
- spring加载bean(ClassPathXmlApplicationContext和FileSystemXmlApplicationContext)
- [转] FileSystemXmlApplicationContext、ClassPathXmlApplicationContext和XmlWebApplicationContext简介
- ClassPathXmlApplicationContext 和FileSystemXmlApplicationContext的区别及用法
- 4-ClassPathXmlApplicationContext 和FileSystemXmlApplicationContext的区别
- ClassPathXmlApplicationContext和FileSystemXmlApplicationContext的路径设置祥解
- JunitTest拿spring容器bean的2种方式[Spring ClassPathXmlApplicationContext和FileSystemXmlApplicationContext]
- Spring ClassPathXmlApplicationContext和FileSystemXmlApplicationContext
- ClassPathXmlApplicationContext 和FileSystemXmlApplicationContext的区别是什么?
- ClassPathXmlApplicationContext和FileSystemXmlApplicationContext的区别
- spring中ClassPathXmlApplicationContext和FileSystemXmlApplicationContext的路径问题
- ClassPathXmlApplicationContext()与FileSystemXmlApplicationContext() 区别