﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-                                  &lt;center&gt;&lt;font size=5&gt;心的方向&lt;/center&gt;-随笔分类-Spring</title><link>http://www.blogjava.net/zilong/category/30704.html</link><description>                           &lt;center&gt;   新的征途...... &lt;/center&gt;</description><language>zh-cn</language><lastBuildDate>Thu, 10 Apr 2008 14:46:09 GMT</lastBuildDate><pubDate>Thu, 10 Apr 2008 14:46:09 GMT</pubDate><ttl>60</ttl><item><title>Spring配置初始化ApplicationContext</title><link>http://www.blogjava.net/zilong/archive/2008/04/10/191769.html</link><dc:creator>阿伟</dc:creator><author>阿伟</author><pubDate>Thu, 10 Apr 2008 02:20:00 GMT</pubDate><guid>http://www.blogjava.net/zilong/archive/2008/04/10/191769.html</guid><wfw:comment>http://www.blogjava.net/zilong/comments/191769.html</wfw:comment><comments>http://www.blogjava.net/zilong/archive/2008/04/10/191769.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zilong/comments/commentRss/191769.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zilong/services/trackbacks/191769.html</trackback:ping><description><![CDATA[<p><span style="font-size: 10pt">转自：http://ttitfly.javaeye.com/blog/133000<br />
<br />
Spring配置初始化ApplicationContext</span></p>
<p><span style="font-size: 10pt">1. 在struts-config.xml里，以插件的形式</span></p>
<p><span style="font-size: 10pt">xml 代码<br />
&lt; plug-in className="org.springframework.web.struts.ContextLoaderPlugIn" / &gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt; set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" / &gt;&nbsp;&nbsp; <br />
&lt; / plug-in &gt;&nbsp;&nbsp;&nbsp; </span></p>
<p><span style="font-size: 10pt">这种方式如果没有配置contextConfigLocation的值，则会自动加载xx-servlet.xml.</span></p>
<p><span style="font-size: 10pt">xx的值是和web.xml里的配置org.apache.struts.action.ActionServlet的servlet-name的值一样</span></p>
<p><span style="font-size: 10pt">如下：xx的值也就是 action,所以会自动加载action-servlet.xml</span></p>
<p><span style="font-size: 10pt">xml 代码<br />
&lt; servlet &gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt; servlet-name &gt;action&lt; / servlet-name &gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt; servlet-class &gt;org.apache.struts.action.ActionServlet&lt; / servlet-class &gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt; load-on-startup &gt;1&lt; / load-on-startup &gt;&nbsp;&nbsp; <br />
&nbsp; &lt; / servlet &gt;&nbsp;&nbsp; <br />
&nbsp; &lt; servlet-mapping &gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt; servlet-name &gt;action&lt; / servlet-name &gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt; url-pattern &gt;*.do&lt; / url-pattern &gt;&nbsp;&nbsp; <br />
&nbsp; &lt; / servlet-mapping &gt;&nbsp;&nbsp; </span></p>
<p><span style="font-size: 10pt">&nbsp;如果sturts-config.xml里配置了contextConfigLocation的值，那么就不会自动加载xx-servlet.xml了，而只会加载contextConfigLocation所指定的xml.</span></p>
<p><span style="font-size: 10pt">&nbsp;2. 第2种方式</span></p>
<p><span style="font-size: 10pt">在web.xml里配置Listener</span></p>
<p><span style="font-size: 10pt">xml 代码<br />
&lt;listener&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&nbsp; listener-class&gt;org.springframework.web.context.ContextLoaderListenerlistener-class&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;&nbsp; /&nbsp; listener&gt;&nbsp;&nbsp; </span></p>
<p><span style="font-size: 10pt">&nbsp;</span></p>
<p><span style="font-size: 10pt">如果在web.xml里给该Listener指定要加载的xml,如：</span></p>
<p><span style="font-size: 10pt">xml 代码<br />
&lt;context-param&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;contextConfigLocationparam-name&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;classpath*:spring/*.xmlparam-value&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; context-param&gt;&nbsp;&nbsp; </span></p>
<p><span style="font-size: 10pt">则会去加载相应的xml,而不会去加载/WEB-INF/下的applicationContext.xml。。但是，如果没有指定的话，默认会去/WEB-INF/下加载applicationContext.xml。</span></p>
<p><span style="font-size: 10pt">&nbsp;</span></p>
<p><span style="font-size: 10pt">3. 第三种方式：ContextLoaderServlet</span></p>
<p><span style="font-size: 10pt">xml 代码<br />
&lt; servlet&gt;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt; servlet-name&gt;context&lt; / servlet-name&gt;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt; servlet-class&gt;org.springframework.web.context.ContextLoaderServlet&lt; / servlet-class&gt;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt; load-on-startup&gt;1&lt; / load-on-startup&gt;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt; / servlet&gt;&nbsp;&nbsp; </span></p>
<p><span style="font-size: 10pt">&nbsp;</span></p>
<p><span style="font-size: 10pt">&nbsp;这种方式和第二种Listener方式一样，唯一的区别就是用Listener方式初始化ApplicationContext，可以和用第一种方式（struts-config.xml里 plugin方式）同时存在，而ContextLoaderServlet则不可以和第一种方式同时存在</span></p>
<p><span style="font-size: 10pt">总结：</span></p>
<p><span style="font-size: 10pt">ContextLoaderServlet已经不推荐用了，它只是为了兼容低版本的servlet.jar才用的。</span></p>
<p><span style="font-size: 10pt">总的来说:Listerner要比Servlet更好一些，而且Listerner监听应用的启动和结束，而Servlet启动要稍微延迟一些。</span></p>
<p><span style="font-size: 10pt">&nbsp;</span></p>
<img src ="http://www.blogjava.net/zilong/aggbug/191769.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zilong/" target="_blank">阿伟</a> 2008-04-10 10:20 <a href="http://www.blogjava.net/zilong/archive/2008/04/10/191769.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>