【SSI开发总结.1】struts2整合spring

news/2024/7/4 0:51:49 标签: spring, struts, bean, action, encoding, class
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

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

class="tags" href="/tags/STRUTS.html" title=struts>struts.properties
class="tags" href="/tags/STRUTS.html" title=struts>struts.objectFactory = class="tags" href="/tags/SPRING.html" title=spring>spring

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

class="tags" href="/tags/STRUTS.html" title=struts>struts.xml
<class="tags" href="/tags/STRUTS.html" title=struts>struts>
      <constant name="class="tags" href="/tags/STRUTS.html" title=struts>struts.objectFactory" value="class="tags" href="/tags/SPRING.html" title=spring>spring" />
</class="tags" href="/tags/STRUTS.html" title=struts>struts>

3)配置Spring监听器

web.xml
<listener>
      <listener-class>org.class="tags" href="/tags/SPRING.html" title=spring>springframework.web.context.ContextLoaderListenerclass="code-tag"></listener-class>
</listener>

通过Spring配置来注册对象

applicationContext.xml
<?xml version=class="code-quote">"1.0"
 class="tags" href="/tags/ENCODING.html" title=encoding>encoding="UTF-8"?>
<!DOCTYPE class="tags" href="/tags/BEAN.html" title=bean>beans PUBLIC
      "-//SPRING//DTD BEAN//EN"
      "http://www.class="tags" href="/tags/SPRING.html" title=spring>springframework.org/dtd/class="tags" href="/tags/SPRING.html" title=spring>spring-class="tags" href="/tags/BEAN.html" title=bean>beans.dtd">
<class="tags" href="/tags/BEAN.html" title=bean>beans default-autowire="byName">
      <class="tags" href="/tags/BEAN.html" title=bean>bean id="personManager" class="com.acme.PersonManager"/>
</class="tags" href="/tags/BEAN.html" title=bean>beans>

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

<!-- 用来定位Spring XML文件的上下文配置 -->
<context-param>
      <param-name>contextConfigLocationclass="code-tag"></param-name>
      <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
</context-param>

4)修改你的Struts配置文件

class="tags" href="/tags/STRUTS.html" title=struts>struts.xml
<!DOCTYPE class="tags" href="/tags/STRUTS.html" title=struts>struts PUBLIC
      "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
      "http://class="tags" href="/tags/STRUTS.html" title=struts>struts.apache.org/dtds/class="tags" href="/tags/STRUTS.html" title=struts>struts-2.0.dtd">
<class="tags" href="/tags/STRUTS.html" title=struts>struts>
      <include file="class="tags" href="/tags/STRUTS.html" title=struts>struts-default.xml"/>
      <package name="default" extends="class="tags" href="/tags/STRUTS.html" title=struts>struts-default">
          <class="tags" href="/tags/ACTION.html" title=action>action name="foo" class="com.acme.Foo">
              <result>foo.ftl</result>
          </class="tags" href="/tags/ACTION.html" title=action>action>
      </package>
      <package name="secure" namespace="/secure" extends="default">
          <class="tags" href="/tags/ACTION.html" title=action>action name="bar" class="bar">
              <result>bar.ftl</result>
          </class="tags" href="/tags/ACTION.html" title=action>action>
      </package>
</class="tags" href="/tags/STRUTS.html" title=struts>struts>

默认情况下,Spring从下面的文件中寻找为bar所做的配置

applicationConext.xml
<?xml version="1.0" class="tags" href="/tags/ENCODING.html" title=encoding>encoding="UTF-8"?>
<!DOCTYPE class="tags" href="/tags/BEAN.html" title=bean>beans PUBLIC
      "-//SPRING//DTD BEAN//EN"
      "http://www.class="tags" href="/tags/SPRING.html" title=spring>springframework.org/dtd/class="tags" href="/tags/SPRING.html" title=spring>spring-class="tags" href="/tags/BEAN.html" title=bean>beans.dtd">
<class="tags" href="/tags/BEAN.html" title=bean>beans default-autowire="byName">
      <class="tags" href="/tags/BEAN.html" title=bean>bean id="bar" class="com.my.BarClass" singleton="false"/>
      ...
</class="tags" href="/tags/BEAN.html" title=bean>beans>

5)好了,现在你的Struts2和Spring就能正常的一起工作了。有几个配置技术点需要详细说明下:装配模式。你可以通过设置修改class="tags" href="/tags/STRUTS.html" title=struts>struts.properties中下列属性的值来改变装配模式。

class="language-java">class="tags" href="/tags/STRUTS.html" title=struts>struts.objectFactory.class="tags" href="/tags/SPRING.html" title=spring>spring.autoWire = type

该参数可供选择的设置值有

class="FCK__ShowTableBorders" style="margin: 5px; border-collapse: collapse;" border="0">
name按照你的class="tags" href="/tags/ACTION.html" title=action>action的属性的名字和Spring里的class="tags" href="/tags/BEAN.html" title=bean>bean的名字匹配,如果匹配就自动装配。这是缺省的
type按照你的class="tags" href="/tags/ACTION.html" title=action>action的属性的类型,在Spring注册的class="tags" href="/tags/BEAN.html" title=bean>bean中查找,如果相同就自动装配。这需要你在Spring中仅注册了一个此类型的class="tags" href="/tags/BEAN.html" title=bean>bean
autoSpring会试图自动监测来找到最好的方法自动装配你的class="tags" href="/tags/ACTION.html" title=action>action
constructorSpring会自动装配class="tags" href="/tags/BEAN.html" title=bean>bean的构造函数的参数

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

class="tags" href="/tags/STRUTS.html" title=struts>struts.objectFactory.class="tags" href="/tags/SPRING.html" title=spring>spring.useClassCache = false

http://www.niftyadmin.cn/n/590880.html

相关文章

iOS中旋转加载动画的实现

1.前言 近日一直在看KITTEN写的《A GUIDE TO IOS ANIMATION》,此乃iOS动画开发的圣经&#xff0c;简直手不释卷。其中有一个动画是加载动画&#xff0c;因为文中没有给出实现的解析&#xff0c;我在这里解析一下动画的实现原理&#xff0c;和自己加入一些新的东西。Github地址…

Guns 旗舰版 2.3 发布,集成atomikos,解决分布式事务问题

开发四年只会写业务代码&#xff0c;分布式高并发都不会还做程序员&#xff1f; 写在最前&#xff0c;感谢Guns 二群 月下魔术师 兄弟提供的解决方案&#xff01;&#xff01; Guns旗舰版v2.3 更新说明&#xff1a; 集成atomikos&#xff0c;完美解决多数据源下事务不同步问题…

richeditor-android富文本编辑器

richeditor-android富文本编辑器 类别&#xff1a; 文字输入框 (EditText) 打分&#xff1a; ★★★★★ 更新&#xff1a; 2015-04-03 08:46 大小&#xff1a; 1579 kb 开发环境&#xff1a; Android Studio 浏览&#xff1a; 5768 次 下载&#xff1a; 819 次 项目地址&…

开发者所需要知道的 iOS 10 SDK 新特性

总览 距离 iPhone 横空出世已经过去了 9 个年头&#xff0c;iOS 的版本号也跨入了两位数。在我们回顾过去四五年 iOS 系统的发展的时候&#xff0c;不免感叹变化速度之快&#xff0c;迭代周期之短。iOS 7 翻天覆地的全新设计&#xff0c;iOS 8 中 Size Classes 的出现&#xff…

Android手势处理框架-android gesture detectors Framework

Android手势处理框架-android gesture detectors Framework 类别&#xff1a; 手势交互 (Gesture) 打分&#xff1a; ★★★★★ 更新&#xff1a; 2015-02-11 02:08 大小&#xff1a; 680 kb 开发环境&#xff1a; Android Studio 浏览&#xff1a; 1354 次 下载&#xff1a;…

活久见的重构 - iOS 10 UserNotifications 框架解析

iOS 10 中以前杂乱的和通知相关的 API 都被统一了&#xff0c;现在开发者可以使用独立的 UserNotifications.framework 来集中管理和使用 iOS 系统中通知的功能。在此基础上&#xff0c;Apple 还增加了撤回单条通知&#xff0c;更新已展示通知&#xff0c;中途修改通知内容&…

DragTopLayout一个在ViewPager头部添加一个可以下拉的头部用以显示菜单的控件,类型豌豆荚的应用详情页实现。...

DragTopLayout 类别&#xff1a; 手势交互 (Gesture) 打分&#xff1a; ★★★★★ 更新&#xff1a; 2015-02-03 11:33 大小&#xff1a; 4163 kb 开发环境&#xff1a; Android Studio 浏览&#xff1a; 2884 次 下载&#xff1a; 512 次 项目地址&#xff1a; https://gith…

IOS RunLoop浅析 一

RunLoop犹如其名循环。 RunLoop 中有多重模式。 在一个“时刻”只能值执行一种模式。 因此在使用RunLoop时要注意所实现的效果有可能不是你想要的。 在这里用NSTimer展示一下Runloop的简单实现。 在故事板中添加一个TextView&#xff08;用于测试&#xff09; 我们吧nstimer加入…