spring整合struts时创建ApplicationContext的方法

原创 2007年10月04日 19:03:00

 

首先简单了解下ApplicationContext这个类,ApplicationContextSpring的容器,负责管理所有的组件,从业务逻辑层组件到持久层组件,都必须运行在Spring容器中。因此,必须在Web应用启动时,创建SpringApplicationContext实例。为了让Spring容器能自动加载,通常有以下一些做法:
 
一、采用ContextLoaderListener来创建ApplicationContext
Spring提供ServletContextListener的一个实现类ContextLoaderListener,该类可以作为listener使用,它会在创建时自动查找/WEB-INF/下的applicationContext.xml文件。因此,如果只有一个配置文件,并且文件名为applicationContext.xml,则只需要在web.xml文件中增加如下代码即可:
 
         <listener>
                   <listener-class>
                            org.springframework.web.context.ContextLoaderListener
                   </listener-class>
         </listener>
 
        
         如果有多个配置文件需要加载,则使用<context-param>元素来确定配置文件的文件名。由于ContextLoaderListener加载时,会查找名为contextConfigLocation的参数。因此,配置<context-param>时的参数名字应该为contextConfigLocation。如果加载多个配置文件,则在web.xml文件增加如下代码即可:
 
<context-param>
                   <!—配置多个文件时需要的参数-->
                   <param-name>contextConfigLocation</param-name>
         <!—需要加载的配置文件,可以有多个,用逗号或空格或分号隔开-->        
                  <param-value>/WEB-INF/applicationContext.xml,/WEB-INF/service.xml</param-value>
         </context-param>
<listener>
                   <listener-class>
                            org.springframework.web.context.ContextLoaderListener
                   </listener-class>
         </listener>
 
二、采用load-on-startup Servlet来创建ApplicationContext
         Spring提供了一个特殊的Servlet类:ContextLoaderServlet。该Servlet在启动时,会自动查找/WEB-INF/下的applicationContext.xml文件。为了让ContextLoaderServlet随应用启动而启动,应将此Servlet配置成load-on-startupServletLoad-on-startup的值小一点比较合适,因为要保证ApplicationContext优先创建。如果只有一个配置文件,并且文件名为applicationContext.xml,则在web.xml文件中增加如下代码即可:
 
<servlet>
                   <servlet-name>context</servlet-name>
                   <servlet-class>
                            org.springframework.web.context.ContextLoaderServlet
                   </servlet-class>
                   <load-on-startup>1</load-on-startup>
         </servlet>
 
         Servlet用于提供后台服务,作为容器管理应用中的其他bean,不需要响应客户请求,因此无须配置servlet-mapping
         如果有多个配置文件需要加载,则使用<context-param>元素来确定配置文件的文件名。由于ContextLoaderListener加载时,会查找名为contextConfigLocation的参数。因此,配置<context-param>时的参数名字应该为contextConfigLocation。如果加载多个配置文件,则在web.xml文件增加如下代码即可:
 
<context-param>
                   <!—配置多个文件时需要的参数-->
                   <param-name>contextConfigLocation</param-name>
         <!—需要加载的配置文件,可以有多个,用逗号或空格或分号隔开-->        
                 <param-value>/WEB-INF/applicationContext.xml,/WEB-INF/service.xml</param-value>
         </context-param>
         <servlet>
                   <servlet-name>context</servlet-name>
                   <servlet-class>
                            org.springframework.web.context.ContextLoaderServlet
                   </servlet-class>
                   <load-on-startup>1</load-on-startup>
         </servlet>
 
三、采用ContextLoaderPlugIn来创建ApplicationContext
         Spring提供了ContextLoaderPlugIn类,用于在启动时加载配置文件。ContextLoaderPlugIn默认加载的配置文件为servletName-servlet.xml,其中servletNameStrutsActionServlet对应的Servlet名。例如web.xml中进行如下定义:
 
         <servlet>
                   <servlet-name>action</servlet-name>
                   <servlet-class>
                            org.apache.struts.action.ActionServlet
                   </servlet-class>
</servlet>
 
         ContextLoaderPlugIn默认加载/WEB-INF/action-servlet.xml,将该文件作为Spring的配置文件。因此,如果Spring的配置文件只有一个,并且文件名为action-sevlet.xml,则只需在struts-config.xml配置文件中增加如下代码:
        
<plug-in className="org.springframework.
web.struts.ContextLoaderPlugIn"/>
 
如果有多个配置文件,则使用<set-property property="" value=""/>元素来加载多个配置文件,如果加载多个配置文件,则在struts-config.xml文件增加如下代码即可:
 
         <plug-in
                   className="org.springframework.web.struts.ContextLoaderPlugIn">
                   <set-property property="contextConfigLocation"
         <!—需要加载的配置文件,可以有多个,用逗号或空格或分号隔开-->
               value="/WEB-INF/action-servlet.xml,
/WEB-INF/applicationContext.xml" />
         </plug-in>

详细分析spring与struts2的整合原理

详细分析spring与struts2的整合原理
  • canot
  • canot
  • 2016年02月19日 15:52
  • 3671

Spring+mybatis+struts框架整合的配置详解

学了很久的spring+mybatis+struts.一直都是单个的用他们,或者是两两组合用过,今天总算整合到一起了,配置起来有点麻烦,但是配置完一次之后,就轻松多了,那么框架整合配置详解如下。1、导...
  • u012036171
  • u012036171
  • 2015年08月13日 00:31
  • 5792

Struts2+Spring, 将框架的配置文件整合起来

如果我们集成多个框架,那每个框架或多或少都会引入一些xml配置文件到项目中,我们一般的做法就是按照配置文件的默认位置去存放它们,但当我们的项目中壮大到连几角旮旯都充斥着配置文件的话,那我们迫切需要将它...
  • zhangleijava1
  • zhangleijava1
  • 2013年12月09日 13:33
  • 1281

Spring整合Struts2的两种方式

Spring提供了一个ContextLoaderListener,该监听类实现了ServletContextListener接口。该类可以作为Listener使用,它会在创建时自动查找WEB-INF/...
  • cuiyaoqiang
  • cuiyaoqiang
  • 2016年07月12日 11:44
  • 4309

要想看懂 spring 的配置文件:ApplicationContext.xml 第一步

要想看懂 spring 的配置文件:ApplicationContext.xml 就得先从简单的来,一步一步的看才会理解的清楚明白。 首先得知道什么叫ioc---依赖注入,注入的方式一般有2个;设值注...
  • qq_27093465
  • qq_27093465
  • 2016年09月17日 22:55
  • 8850

spring的配置文件applicationContext.xml配置文件详解

applicationContext.xml详解 分类: SSH框架2011-11-29 09:34 6650人阅读 评论(4) 收藏 举报 springhibernatebeanserv...
  • u014464597
  • u014464597
  • 2014年11月11日 16:53
  • 3339

【SSH网上商城项目实战01】整合Struts2、Hibernate4.3和Spring4.2

今天开始做一个网上商城的项目,首先从搭建环境开始,一步步整合S2SH。这篇博文总结了如何整合Struts2、Hibernate4.3和Spring4.2。 整合三大框架得先从搭建各部分环境开始,也就是...
  • eson_15
  • eson_15
  • 2016年05月04日 22:11
  • 44437

Spring中ApplicationContext加载机制和配置初始化

Spring中ApplicationContext加载机制。         加载器目前有两种选择:ContextLoaderListener和ContextLoaderServlet。       ...
  • aimiaochun1
  • aimiaochun1
  • 2017年06月21日 14:18
  • 1093

Spring+Struts2+mybatis三大框架的整合配置

现在主流的项目框架中,数据库持久层有可能不是hibernate,而是mybatis或者ibatis,其实它们都是一样的,下面我来把环境搭建一下: 【导入相关jar包】新建web项目工程mss,Spri...
  • lgslgs123456
  • lgslgs123456
  • 2015年08月01日 10:23
  • 2421

Struts2+Spring+Hibernate 三大框架的合并集成

这次来看看Struts2+Spring+Hibernate三大框架的整合应用,主要是Spring和Hibernate框架的整合,因为前边已经将Strtus2+Spring整合过了基本一样。    ...
  • liujiahan629629
  • liujiahan629629
  • 2014年03月19日 22:57
  • 35851
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spring整合struts时创建ApplicationContext的方法
举报原因:
原因补充:

(最多只允许输入30个字)