﻿<?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-不死的执着</title><link>http://www.blogjava.net/sofia888888/</link><description>奋斗毫秒</description><language>zh-cn</language><lastBuildDate>Thu, 07 May 2026 08:11:17 GMT</lastBuildDate><pubDate>Thu, 07 May 2026 08:11:17 GMT</pubDate><ttl>60</ttl><item><title>spring2和struts2整合</title><link>http://www.blogjava.net/sofia888888/archive/2008/11/03/238435.html</link><dc:creator>欧阳亮</dc:creator><author>欧阳亮</author><pubDate>Mon, 03 Nov 2008 13:31:00 GMT</pubDate><guid>http://www.blogjava.net/sofia888888/archive/2008/11/03/238435.html</guid><wfw:comment>http://www.blogjava.net/sofia888888/comments/238435.html</wfw:comment><comments>http://www.blogjava.net/sofia888888/archive/2008/11/03/238435.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sofia888888/comments/commentRss/238435.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sofia888888/services/trackbacks/238435.html</trackback:ping><description><![CDATA[<div style="padding-right: 3px; padding-left: 3px; padding-bottom: 8px; margin: 0px 5px; padding-top: 0px">
<div id="entryad" style="width: auto; height: auto"><span id="google3_text"><!--ggadsense--></span><script>google3_text.innerHTML=span_google3_text.innerHTML;span_google3_text.innerHTML="";</script></span></div>
<style> .Cxs247 { display:none; } </style>
在Struts2中整合Spring的IoC支持是一件十分简单的事情。让我们一步一步来实现：<br />
&nbsp;&nbsp;&nbsp; 1）复制struts2-spring-plugin-x-x-x.jar和相应的spring.jar到/WEB-INF/lib目录下。<br />
&nbsp;&nbsp;&nbsp; 2）在struts.properties中设置struts.objectFactory属性值
<p><br />
&nbsp;&nbsp;&nbsp; struts.properties<br />
&nbsp;&nbsp;&nbsp; struts.objectFactory = spring<br />
&nbsp;&nbsp;&nbsp; 或者是在XML文件中进行常量配置 </p>
<p>&nbsp;&nbsp;&nbsp; struts.xml<br />
&nbsp;&nbsp;&nbsp; &lt;struts&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;constant name="struts.objectFactory" value="spring" /&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/struts&gt;<br />
&nbsp;&nbsp;&nbsp; 3）配置Spring监听器 <font color="#ffffff"></font></p>
<p>&nbsp;&nbsp;&nbsp; web.xml<br />
&nbsp;&nbsp;&nbsp; &lt;listener&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/listener&gt;<br />
&nbsp;&nbsp;&nbsp; 通过Spring配置来注册对象 </p>
<p>&nbsp;&nbsp;&nbsp; applicationContext.xml<br />
&nbsp;&nbsp;&nbsp; &lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;!DOCTYPE beans PUBLIC<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "-//SPRING//DTD BEAN//EN"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "http://www.springframework.org/dtd/spring-beans.dtd"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;beans default-autowire="autodetect"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean id="hello" class="hpfyeah.struts2.spring.HelloWorldAction"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/beans&gt;<br />
&nbsp;&nbsp;&nbsp; 当然你也可以拥有更多的Spring配置文件。在web.xml中进行下列设置，从而使Spring的ApplicationContext通过匹配所给定模式的文件来初始化对象
<p class="Cxs247"></p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; web.xml<br />
&nbsp;&nbsp;&nbsp; &lt;!-- 用来定位Spring XML文件的上下文配置 --&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;context-param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/param-value&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/context-param&gt;<br />
&nbsp;&nbsp;&nbsp; 4）修改你的Struts配置文件 </p>
<p>&nbsp;&nbsp;&nbsp; struts.xml<br />
&nbsp;&nbsp;&nbsp; &lt;!DOCTYPE struts PUBLIC<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "http://struts.apache.org/dtds/struts-2.0.dtd"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;struts&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include file="struts-default.xml"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;package name="default" extends="struts-default"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action name="pureStruts" class="hpfyeah.struts2.spring.HelloWorldAction"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;result&gt;hello.jsp&lt;/result&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/action&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action name="springStruts" class="hello"&gt;
<div class="Cxs247"></div>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;result&gt;hello.jsp&lt;/result&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/action&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/struts&gt;<br />
&nbsp;&nbsp;&nbsp; 默认情况下，Spring从上面显示的applicationContext.xml文件中寻找为hello所做的配置 <span class="Cxs247">软件开发网 www.mscto.com</span>
<p>&nbsp;</p>
<p>5）好了，现在你的Struts2和Spring就能正常的一起工作了。有几个配置技术点需要详细说明下：<br />
&nbsp;&nbsp;&nbsp; 装配模式。你可以通过设置修改struts.properties中下列属性的值来改变装配模式。
<p class="Cxs247"></p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; name 按照你的action的属性的名字和Spring里的bean的名字匹配，如果匹配就自动装配。这是缺省的<br />
&nbsp;&nbsp;&nbsp; type 按照你的action的属性的类型，在Spring注册的bean中查找，如果相同就自动装配。这需要你在Spring中仅注册了一个此类型的bean<br />
&nbsp;&nbsp;&nbsp; auto Spring会试图自动监测来找到最好的方法自动装配你的action<br />
&nbsp;&nbsp;&nbsp; constructor Spring会自动装配bean的构造函数的参数
<div class="Cxs247"></div>
<p>&nbsp;</p>
<p><br />
&nbsp;&nbsp;&nbsp; 是否使用类缓存。你可以通过设置修改struts.properties中下列属性的值来改变是否使用Spring自身的类缓存机制。可以设定的值为true或false，默认为true。 <font color="#ffffff"></font></p>
&nbsp;&nbsp;&nbsp; struts.properties<br />
&nbsp;&nbsp;&nbsp; struts.objectFactory.spring.useClassCache = false</div>
<img src ="http://www.blogjava.net/sofia888888/aggbug/238435.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sofia888888/" target="_blank">欧阳亮</a> 2008-11-03 21:31 <a href="http://www.blogjava.net/sofia888888/archive/2008/11/03/238435.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>