`

整合 Spring 和 Strust2 一起工作

阅读更多

 


关键字: struts2 spring Struts2 中整合Spring 的IoC支持是一件十分简单的事情。让我们一步一步来实现:
1)复制struts2 -spring -plugin-x-x-x.jar和相应的spring .jar到/WEB-INF/lib目录下。
2)在struts.properties中设置struts.objectFactory属性值

struts.properties
  1. struts.objectFactory = spring   

或者是在XML文件中进行常量配置

struts.xml
  1. < struts >   
  2.      < constant   name = "struts.objectFactory"   value = "spring "   />   
  3. </ struts >   

3)配置Spring 监听器

web.xml
  1. < listener >   
  2.      < listener-class > org.springframework.web.context.ContextLoaderListener </ listener-class >   
  3. </ listener >   

通过Spring 配置来注册对象

applicationContext.xml
  1. <? xml   version = "1.0"   encoding = "UTF-8" ?>   
  2. <!DOCTYPE beans PUBLIC    
  3.     "-//SPRING //DTD BEAN//EN"   
  4.     "http://www.springframework.org/dtd/spring -beans.dtd" >   
  5. < beans   default-autowire = "autodetect" >   
  6.      < bean   id = "hello"   class = "hpfyeah.struts2 .spring .HelloWorldAction" />   
  7. </ beans >   

当然你也可以拥有更多的Spring 配置文件。在web.xml中进行下列设置,从而使Spring 的ApplicationContext通过匹配所给定模式的文件来初始化对象

web.xml
  1. <!-- 用来定位Spring  XML文件的上下文配置 -->   
  2. < context-param >   
  3.      < param-name > contextConfigLocation </ param-name >   
  4.      < param-value >
  5.         /WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml
  6.     </ param-value >   
  7. </ context-param >   

4)修改你的Struts配置文件

struts.xml
  1. <!DOCTYPE struts PUBLIC      
  2.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"      
  3.     "http://struts.apache.org/dtds/struts-2.0.dtd" >      
  4. < struts >      
  5.      < include   file = "struts-default.xml" />      
  6.      < package   name = "default"   extends = "struts-default" >      
  7.          < action   name = "pureStruts"   class = "hpfyeah.struts2 .spring .HelloWorldAction" >
  8.              < result > hello.jsp </ result >      
  9.          </ action >   
  10.          < action   name = "springStruts"   class = "hello" >       
  11.              < result > hello.jsp </ result >      
  12.          </ action >      
  13. </ struts >   

默认情况下,Spring 从上面显示的applicationContext.xml文件中寻找为hello所做的配置

5)好了,现在你的Struts2Spring 就能正常的一起工作了。有几个配置技术点需要详细说明下:
装配模式 。你可以通过设置修改struts.properties中下列属性的值来改变装配模式。

 

name 按照你的action的属性的名字和Spring 里的bean的名字匹配,如果匹配就自动装配。这是缺省的
type 按照你的action的属性的类型,在Spring 注册的bean中查找,如果相同就自动装配。这需要你在Spring 中仅注册了一个此类型的bean
auto Spring 会试图自动监测来找到最好的方法自动装配你的action
constructor Spring 会自动装配bean的构造函数的参数

是否使用类缓存 。你可以通过设置修改struts.properties中下列属性的值来改变是否使用Spring 自身的类缓存机制。可以设定的值为true或false,默认为true。

struts.properties

struts.objectFactory.spring .useClassCache = false

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics