用spring的web应用里,XmlWebApplicationContext比ClassPathXmlApplicationContext有啥好处?文件位置呢?

用spring的web应用里,XmlWebApplicationContext和ClassPathXmlApplicationContext相比有啥好处?Spring从什... 用spring的web应用里,XmlWebApplicationContext和ClassPathXmlApplicationContext相比有啥好处?Spring 从什么位置加载配置文件?最好能给个参考的例子,多谢。
补充1楼:要用方法3需在web.xml里配置如下:
<listener>
 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
如果不用listener,应:
 XmlWebApplicationContext context = new XmlWebApplicationContext();
 context.setServletContext(event.getServletContext());
 context.refresh();
以上两种方式配置文件都应当是 /WEB-INF/applicationContext.xml
可增加其他配置文件或位置,这里不多说了。
展开
 我来答
百度网友460c94d
2012-06-12
知道答主
回答量:22
采纳率:0%
帮助的人:9.9万
展开全部
我们常用的加载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);
追问
多谢啦!用 XmlWebApplicationContext 的话,配置文件是放在哪个目录下呢?文件名呢?是不是必须是 /WEB-INF/applicationContext.xml?如果可以改,怎么改呢?除了用来装载配置文件的方式不同以外,这三种方式之间还有什么区别不?
追答
一般都用ClassPathXmlApplicationContext
第一种的缺点很明确了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式