Spring集成Struts的方法

44、Spring与Struts的集成及测试实践 本文详细探讨了Spring与Struts框架的集成实践,包括将Struts动作作为Spring Bean的实现方法,以及结合Struts和Spring MVC的具体步骤。同时,文章深入解析了测试在软件开发中的重要性,涵盖单元测试、集成测试和性能测试的实现方式,并介绍了多种测试工具如JUnit、EasyMock、JMeter等的使用。此外,还讨论了测试覆盖率的概念及其实现工具,为开发高质量、高性能的Java应用提供了全面的技术指导。 阅读详情

struts要和spring集成,struts就必须能访问spring的上下文,struts作为web的框架,故要保证web应用程序启动前装载了spring的web应用上下文。如果装载了spring的web上下文,在程序中就可以通过spring提供的WebApplicationContextUtils工具类来访问该上下文:
ApplicationContext ctx =
   WebApplicationContextUtils.getWebApplicationContext(servletContext);

装载spring上下文的方法有以下几种:
1、通过web.xml声明监听器,在web服务启动时装载: (其listener用到context-param)
...................

<context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
.......................

2、通过web.xml声明spring提供的ContextLoaderServlet(早期不支持servlet2.4时用):

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

3、通过struts-config.xml以插件的形式声明spring提供的ContextLoaderPlugin,就可以向sturts的ActionServlet装载spring的应用上下文了:

   ......................

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

.........................

 


集成struts的方法:


1 、使用 org.springframework.web.struts.ActionSupport 类:
这是最简单的集成struts方法。通过struts的action简单继承ActionSupport类便可以直接使用spring上下文。
..............
XXXX xxx=(XXXX)this.getWebApplicationContext().getBean("xxx");
..............

2、使用 org.springframework.web.struts.DelegatingRequestProcessor 类来覆盖struts的高层处理类RequestProcessor,这就要在struts-config.xml中用controller声明:
.....................
<action-mappings>
   ...........
   <action path="/login"
    type="struts.action.LoginAction"
    name="loginForm">
   <forward name="success" path="/WEB-INF/main.jsp">
   </action>
   ...........
</action-mappings>
.....................
<controller processorClass="org.springframework.web.struts.DelegatinRequestProcessor"/>
.....................

另外,还要在spring配置文件中,声明对应某个action的bean,而且bean的name值必须和action的path一致,因为spring容器是根据此bean的name来找到相应的action,然后再进行相应的注入操作的:
................
<bean id="loginService" class="business.LoginServiceImpl">
        <property name="name" value="aaaaa"/>
    </bean>

    <bean name="/login"
       class="struts.action.LoginAction">
        <property name="loginService">
            <ref bean="loginService"/>
        </property>
    </bean>
................

 

3、使用 org.springframework.web.struts.AutowiringRequestProcessor 类,它是spring2.0 后加入的。类似DelegatingRequestProcessor,但它的自动完成能力更强。首先也要在struts-config.xml中用<controller>声明:
........................
<controller processorClass="org.springframework.web.struts.AutowiringRequestProcessor"/>
........................
其他的就照常就得了,它比DelegatingRequestProcessor少了在spring配置中声明action的bean,它会根据action类名来自动完成注入操作。即Struts的Action中如有某业务类A对象的属性,又在spring配置文件中声明了业务类A的Bean,则AutowiringRequestProcessor就会自动将业务类A的Bean注入到Action中。

看上去你好像啥都没做,而事实上,注入工作已经由AutowiringRequestProcessor自动完成。 这种autowire的注入支持两种不同的方式,分别是byName和byType,默认是byType。

struts2和spring整合包 包含struts2独立开发包 spring2独立开发包等等 包含struts2独立开发包 spring2独立开发包等等 立即下载

相关推荐

Allegro File菜单实战指南:从导入网表到导出BOM的完整流程

PCB设计离不开对EDA软件菜单体系的深入理解。在Cadence Allegro中,File菜单是数据流转的中枢,它不仅是新建、打开、保存的基础入口,更是连接原理图与版图、设计与制造的关键桥梁。工程师常遇到的“导入网表报错”“导出BOM为空”“板框不闭合”等高频问题,大多源于对File菜单中Import与Export功能的理解不到位。从基础概念出发,先厘清Import(网表、DXF、IPC)与Export(BOM、ODB++、DXF)的工作原理,再结合版本兼容、封装库路径、单位设置等工程细节,即可构建完整的

weixin_32950759的博客 296

spring+struts整合

一、整合中遇到的问题 1.struts与spring整合要用到struts2-spring-plugin包,它作用就是不让struts自己创建Action,而是让spring创建管理Action对象。 但是我在加了这个Jar包后,发现它自带了低版本的spring包,使用exclusion标签排除了问题Jar包,下面链接是具体操作: https://blog.youkuaiyun.com/weix...

金豆呀的博客 1715

IGV新手必看:5分钟搞定ChIP-seq/DAP-seq/ATAC-seq数据可视化(附常见报错解决方案)

本文为IGV新手提供了一份快速上手的实战指南,详细讲解了如何高效完成ChIP-seq、DAP-seq、ATAC-seq等数据的可视化。内容涵盖软件安装、基因组导入、文件格式转换与优化,并重点剖析了“导入后一片空白”等常见报错的根本原因与解决方案,帮助用户在5分钟内避开雷区,生成可用于发表的IGV专业图谱。

weixin_29198045的博客 539

struts整合Spring(2种方法)

 第一种整合方式:1.在Struts配置文件中增加一个Spring插件配置,其它配置不变。这个插件的作用是web服务器启动时即创建ApplicationContext上下文实例,并将其加载到ServletContext实例(即jsp的内置对象application)中。2.用户Action不再从struts框架的Action基类继承,而从Spring提供的Action基类继承,这个类是or

Mrzhangpan专栏 884

跨模型的 API 调用与集成:使用 Spring AI 构建可移植的 API 代码,支持多个 AI 模型(如 OpenAI、Anthropic 等)的调用

Spring AI 是 Spring 生态系统中的一部分,旨在提供一种简单、可扩展的方式来集成人工智能模型。Spring AI 使得开发者可以使用现有的 Spring 体系结构方便地访问多种 AI 模型和服务,例如 OpenAI、Anthropic、HuggingFace 等。

秋元的博客 2404

Cesium WebGL性能调优实战:从卡顿根源到流畅渲染

本文深入探讨Cesium WebGL性能调优的实战技巧,从硬件配置、框架适配到3D Tiles加载策略,全面解决卡顿问题。通过强制启用独立显卡、优化浏览器设置、避免Vue内存陷阱等实用方法,显著提升3D地图应用的流畅度。文章还分享了高级调试工具和实战避坑经验,帮助开发者实现高效渲染。

weixin_27215337的博客 421

Spring和Struts2

一、Spring 1、Spring概述 Spring是一个轻量级的DI和AOP容器框架。 Spring是非侵入式的,基于spring开发的应用一般不依赖于spring的类。 DI:称作依赖注入(Dependency Injection),和控制反转的一个概念,具体的讲,当一个角色需要另外一个角色协助的时候,在传统的程序设计中,通常有调用者来创建被调用者的实例。但是在spring中创建被调用...

weixin_42078450的博客 3512

银行会计第2课:交易和核算分离的思想

核算作为会计的基础,将交易转化为可量化的信息,而会计则通过整合核算结果,实现对经济活动的全面把控。- 本质:指企业或主体之间发生的、能引起经济利益变动的具体事项,比如采购商品、销售货物、支付工资等,是客观发生的经济事实。可售产品(业务视角的核算对象) + 属性条件(核算的分类,限制等) = 核算类型(会计视角,含有科目分类内容)- 核算:会计人员根据采购发票、入库单等,将这笔交易记为“借:原材料,贷:银行存款”(对事实的会计处理)。- 特点:是核算的源头,不涉及会计处理,仅代表经济行为的发生。

ademen的博客 499

Struts和Spring的区别?

        基于Web的MVC framework在Java EE的世界内已是空前繁荣。TTS网站上几乎每隔一两个星期就会有新的MVC框架发布。目前比较好的MVC,老牌的Struts(这里指的是Struts1.X)、Webwork。新兴的MVC框架有Spring MVC、Tapestry、JSF等。这些大多是著名团队的作品,另外还有一些边缘团队的作品,也相当出色,如Dinamica、VRapt

Eastyell的专栏 1万+

一文吃透 OData Deep Insert:从框架原理到 ABAP 实战

本文面向ABAP工程师,解析OData服务中的Deep Insert技术。文章首先阐述Deep Insert的业务背景,说明其适用于父子层级数据必须成组创建的场景(如销售订单与行项目)。随后深入框架实现机制,介绍SAP Gateway如何通过CREATE_DEEP_ENTITY方法处理嵌套请求,并强调开发者的责任边界。通过销售订单案例,文章对比了Deep Insert与$batch的适用场景差异,提供请求负载示例和DPC_EXT实现骨架代码。最后给出MPC_EXT声明深结构的三种套路,以及事务处理和错误处理

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 225

C#实战:从零搭建Vosk离线语音转文字系统

本文手把手教你用C#构建离线语音转文字系统,基于NAudio和Vosk实现全流程开发。首先介绍环境搭建,包括NuGet包安装和中文模型配置,强调16kHz单声道音频格式的关键性。接着详细解析音频预处理转换、Vosk模型初始化及识别过程的核心代码,提供多线程优化建议和实时识别扩展思路。文章包含80%以上代码注释,从常见问题排查到性能优化技巧,完整覆盖从"Hello World"到工业级部署的关键技术点,特别适合需要开发本地化语音识别应用的C#开发者。

墨夶的博客 752

Spring整合Struts详解

Spring整合Struts详解

WYZSC的专栏 1339

一步到位解决Docker拉取镜像失败的问题!超详细的Docker代理设置教程!(使用代理解决群晖Docker获取注册表失败的问题)

一步到位解决Docker拉取镜像失败的问题!超详细的Docker代理设置教程!(使用代理解决群晖Docker获取注册表失败的问题)

XiaoqiangClub的博客 1万+

Spring集成Struts方法简述

[code="java"] 以下说明如何实现spring集成struts。 1、应用服务器没有直接调用启动Spring的方法,但是应用服务器编译运行servlet,filter,listener,所以spring提供一个listener类,在服务器初始化的时候调用该类中的方法,所以在容器中配置如下: http://developer.51cto.com/art/200906/13...

wangzhanpeng的博客 139

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Spring分别与Struts1.x 和Struts2.x集成方法

[align=center][size=xx-large][b][color=red]Spring分别与Struts1.x 和Struts2.x集成方法[/color][/b][/size][/align] 1.整合struts1: a.可以通过action继承spring提供的ActionSupport来获得spring中的bean, b.配置struts的过程处理器cotro...

mohaiyong的专栏 141

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Struts2集成spring3后action的几种实例方法

一般来说,整合struts和spring后,struts的配置文件struts.xml或struts.properties不会发生变化,spring配置文件也只需配置业务组件及以下层次的bean,但我们在请求action的时候缺可以直接使用。那么action实例到底是怎样实例和注入的呢?

荔子——一路走来 766

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Spring MVC集成Struts Tiles使用方法

首先,我们定义一个总体的tiles视图 /tiles/mainTemplate.jsp首先使用:打印tiles配置文件中定义的字符串属性title然后是分别加载header,content,footer三个jsp页面,共同组成mainTemplate.jsp...@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefi

我的世界我的梦 3270

struts2+hibernate+spring2.5+properties集成整合方法

在一些项目中可能需要用properties代替hibernate.cfg.xml数据库相关配置, 可以简化管理, 方便维护或者用于动态属性加载. 首先SSH三大框架中的jar包导入到项目中, 接下来进行配置: 1.首先配置WEB.XML文件         &lt;!-- spring 配置 --&gt; &lt;listener&gt;         &lt;listener-class&gt...

Mirson - 多一些分享, 多一些进步 131

struts2+hibernate+spring2.5用properties集成整合配置方法

在一些项目中可能需要用properties代替hibernate.cfg.xml数据库相关配置, 可以简化管理, 方便维护或者用于动态属性加载. 首先SSH三大框架中的jar包导入到项目中, 接下来进行配置:1.首先配置WEB.XML文件                 org.springframework.web.context.ContextLoaderListener        c

Mirson - 多一些分享, 多一些进步 1583

struts2与Spring3集成中Action的自动装配不起作用解决方法

今天碰到一个Spring的自动装配问题,关于Struts2和Spring3.0的集成。在网上搜到一篇文章: http://aeqopq231.blog.stcn.com/archives/2012/407199.html, 该文章指出使用autodect来解决,实际上这是错误的。autodect代表在bean寻找的方式上使用type或者constructor的方式来查找bean,因此不是这个问...

gly_ustb的博客 250

Spring集成Struts的方式

Spring集成Struts的方式     1.从一个知晓Spring的基类中派生Struts action;     2.将请求委托给作为Spring bean管理的Struts action来处理; (1)注册Spring插件     &lt;plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"&g...

iteye_13320的博客 118

Spring与Struts1的集成

<br />  <br />Spring和Struts整合的价值在于将Struts使用的BO或DAO 乃至Action交给Spring管理,从而充分利用Spring强大的IoC和AOP 特性。<br /> <br />无论使用哪种方式整合,都需要为 Struts装载 Spring 应用上下文环境。有以下三种方式:<br /> <br /><br />1) 在struts-config.xml中使用Struts Plugin<br /><plug-in className="org.springframew

java journey 1501

spring与struts1.x整合

s此篇文章为转载,留作记录,spring和struts1.X版本的集成有三种方式,而Struts 2(或者叫做WebWork 2),只需要在struts.prperties中加入struts.objectFactory=spring,指定spring作为Struts的bean工厂就可以了 Sping和Struts1.X集成的三种方法:    1,使用Spring 的 ActionS

mingzidaodiduochang的专栏 434
上一篇: IDEA快捷键
下一篇: 好担心
lpali
博客等级 码龄21年 0粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值