Jun 18

Spring配置初始化ApplicationContext 不指定

chirs , 15:16 , 瓜哇天地 » SPRING , 评论(4) , 引用(0) , 阅读(4794) , Via 本站原创 | |
1. 在struts-config.xml里,以插件的形式

xml 代码
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"/>  
    <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>  
</plug-in>

这种方式如果没有配置contextConfigLocation的值,则会自动加载xx-servlet.xml.

xx的值是和web.xml里的配置org.apache.struts.action.ActionServlet的servlet-name的值一样

如下:xx的值也就是 action,所以会自动加载action-servlet.xml

xml 代码
<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <load-on-startup >1</load-on-startup >
</servlet>  
<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

如果sturts-config.xml里配置了contextConfigLocation的值,那么就不会自动加载xx-servlet.xml了,而只会加载contextConfigLocation所指定的xml.

2. 第2种方式

在web.xml里配置Listener

xml 代码
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

如果在web.xml里给该Listener指定要加载的xml,如:
<context-param>  
        <param-name>contextConfigLocationparam-name>  
        <param-value>classpath*:spring/*.xmlparam-value>  
</context-param>
  

则会去加载相应的xml,而不会去加载/WEB-INF/下的applicationContext.xml。。但是,如果没有指定的话,默认会去/WEB-INF/下加载applicationContext.xml。

3. 第三种方式:ContextLoaderServlet

xml 代码
<servlet>
        <servlet-name>context</servlet-name>    
        <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>    
        <load-on-startup>1</load-on-startup>
</servlet>
  

这种方式和第二种Listener方式一样,唯一的区别就是用Listener方式初始化ApplicationContext,可以和用第一种方式(struts-config.xml里 plugin方式)同时存在,而ContextLoaderServlet则不可以和第一种方式同时存在

总结:
ContextLoaderServlet已经不推荐用了,它只是为了兼容低版本的servlet.jar才用的。

总的来说:Listerner要比Servlet更好一些,而且Listerner监听应用的启动和结束,而Servlet启动要稍微延迟一些。
ManFred
2008/07/22 22:32
2.5中已经改成:
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc-struts</artifactId>
    <version>2.5.5</version>
</dependency>
chirs 回复于 2008/07/25 14:25
你这个是maven上管理lib的啊!
ManFred
2008/07/22 17:26
Spring2.5 中如何配置Struts插件呢?不是Struts2呵。
chirs 回复于 2008/07/25 14:28
这个好像没有说配件什么MVC插件的东西啊!
我是讲spring加载方式啊!
spring 2.5与其他mvc一起使用,没有太大的变化!特别是struts1啊。struts2本身就支持spring的!
chirs
2008/06/28 00:06
文件已经说得很清楚了!
一个是使用的是Listener方式一个使用的是Servlet方式。你可以看我另外一篇文章中有关Servlet有介绍!
ManFred
2008/06/27 13:55
ContextLoadListener与ContextLoadServlet可以同时存在吗?
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]