Spring整合Struts的三种方式:ActionSupport、DelegatingRequestProcessor与全权委...
需积分: 10 92 浏览量
更新于2024-12-24
收藏 42KB DOC 举报
本文将深入探讨Spring框架与Struts框架的整合,主要介绍三种常见的整合方式:使用Spring的ActionSupport、Spring的DelegatingRequestProcessor类以及全权委托Spring。
首先,整合的第一步是在Struts应用中引入Spring环境。这通常通过在`struts-config.xml`文件中添加Spring的`ContextLoaderPlugIn`插件来实现。这个插件的配置如下:
```xml
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
</plug-in>
```
这样做的好处是,Spring的配置文件`applicationContext.xml`可以直接在`WEB-INF`目录下引用,避免了在`web.xml`中进行冗余的配置。确保`applicationContext.xml`文件在此目录下,以便Spring能正确地加载并管理应用的bean。
1. 使用Spring的ActionSupport
Spring的`ActionSupport`是一个强大的工具,它扩展自`org.apache.struts.action.Action`。通过继承`ActionSupport`,子类可以自动获取到`WebApplicationContext`实例。例如,在`LoginAction`类中,我们看到这样的代码片段:
```java
public class LoginAction extends org.springframework.web.struts.ActionSupport {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form; // 示例代码
WebApplicationContext ctx = this.getWebApplicationContext(); // 获取Spring上下文
LoginDao loginDao = (LoginDao) ctx.getBean("loginDao"); // 通过Spring获取DAO实例
}
```
这样,`LoginAction`可以直接访问Spring中的Bean,比如数据库访问层(`LoginDao`),实现了业务逻辑与Spring容器的解耦。
2. 使用Spring的DelegatingRequestProcessor
`DelegatingRequestProcessor`是另一种整合方式,它允许Struts的请求处理器调用Spring的AOP(面向切面编程)来处理业务逻辑。这种方式提供了更细粒度的控制,可以根据需要选择性地拦截和处理请求。然而,具体实现会涉及到更多的代码配置和AOP的概念。
3. 全权委托Spring
最后一种整合策略是将Struts的所有控制权完全交给Spring,这意味着Struts的Action、Interceptor和PlugIn等组件都由Spring管理。这种模式下,Struts的行为和功能可能会更依赖于Spring的配置和扩展,但能够充分利用Spring的强大功能,如依赖注入、事务管理和AOP等。
总结起来,这三种整合方式各有优缺点,开发者可以根据项目需求选择合适的整合方式。无论哪种方式,核心都是利用Spring来简化应用的管理,提高代码的可维护性和灵活性。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2009-10-25 上传
2011-03-06 上传
2011-05-29 上传
2017-12-04 上传
2017-12-04 上传
lin_qazwsx
- 粉丝: 0
- 资源: 4
最新资源
- DigiQs:软件工程专业
- UDO-AR
- cisco_acl_parser:Powershell ACL 解析器
- Hnefatafl:维京棋
- 行业文档-设计装置-一种利用手机触摸屏实现计算机设备手写输入的方法.zip
- prueba
- php-string-convert:将字符串从utf-8转换为Windows-1250
- password-generator
- react-shopping-cart:React购物车9a
- 华为简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- 积分java源码-Truckee-Talos---Rover-Ruckus:特拉基-塔洛斯---Rover-Ruckus
- resize-image-lambda:Lambda函数,用于下载图像并调整其大小
- ScheduleMonkey:Schedule Monkey Web应用程序的存储库
- 房地产行业华中区域2020年房地产市场年报:疫后乘风破浪,”开挂“般重获新生.rar
- flutter_dribble_ui
- 课程设计,实训-基于C#的摇号抽奖系统.zip