Struts与Spring MVC的比较

转载地址:http://wuquanyin1011.iteye.com/blog/693364

前段时间与一名同事一起讨论起了spring mvc与struts,今天查看了相应的资料,,对其作了总结:

 

一,Struts2 

 1,每次请求(request)都会实例化一个控制类(Action),因为Model存在与Action中,即action是有状态的,所以每次请求都要实例化,而且struts2的设计者认为在强大的垃圾收集器下,用完就扔,并不会影响性能问题,而且还可以保证线程的安全问题.

 

2,自从struts2之后,里面的设计除了action之外,大部分功能都围绕着拦截器设计,如果称我们平常的逻辑为横性思维的话,拦截器提供了纵向思维扩展,在我们执行action时,可以任意提供其他的应用,有点像aop的味道....

 

3,至于struts2提供了很丰富的界面功能,,这点我觉的没必要比较,因为在大多数应用开发中,,大多数人在界面上都运用其他的第三方如jstl或者extjs等等...这个不作优势比较

 

4,稍微看了下源码,使用了代理(ActionProxy)以及反射机制进行(dispatch),有些人说这样的代理是最损耗性能,,,如上面的设计者所说每次都创建一个实例没事,更何况这个代理呢,,,在java企业应用时,大部分可以就架构而去性能..

 

二,spring mvc

 

1,也有提供拦截器,,但是提供的并没有sturts2完全以及强大

 

2,spring提供了annotation的注释,使我们更少的去配置xml,而且灵活度非常强,使开发起来更加便利

 

3,spring 提供的handleAdapter,可使servlet或者其他自己实现的接口替换进来,相当灵活

 

4,spring提供的mapping,action,view(jsp,velocity等),根据需要可以实现最大限度的灵活性

 

结:本人认为,综合了上述的内容,,

一个团队中决定使用哪种框架开发,应该取决于团队对某种框架的了解程度,,达到更高效的开发才最合适,,没有最好的框架,只有最适合的框架...


最近整理了学习材料,有需要的请下载,我放到微信了,方便管理,还能交流,扫描二维码加入即可




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Struts Spring MVC 是一种结合了 Struts 框架和 Spring 框架的模型-视图-控制器 (MVC) 设计模式的实现。这种架构组合使得开发企业级 web 应用程序更加高效和灵活。 **1. Struts**: Struts 是一个基于 Java 的开源 MVC 框架,它定义了控制器(Controller)和视图(View),并将请求处理逻辑封装在 Action 类中。Action 类负责接收请求、调用业务逻辑并最终渲染视图。 **2. Spring**: Spring 是一个强大的依赖注入(DI)和 inversion of control(IoC)框架,主要用于管理应用程序的组件和配置。Spring MVC 建立在 Spring 的基础之上,扩展了其功能,添加了 MVC 分层和处理 HTTP 请求的能力。 **3. Spring MVC 的工作流程**[^4]: - **控制器(Controller)**: 接收来自前端的 HTTP 请求,并根据请求的类型决定调用哪个处理器(如 Controller Action 或 RESTful API)。 - **处理器(Processor)**: 执行业务逻辑或数据处理,可能调用 DAO(Data Access Object)进行数据访问。 - **模型(Model)**: 存储数据或业务结果,与数据持久化无关,保持数据与视图分离。 - **视图(View)**: 通常是一个 JSP 页面或其他模板引擎,接收 Model 中的数据并展示给用户。 **示例代码**[^5]: ```java @Controller public class MyController { @RequestMapping(value = "/hello") public String handleRequest(@ModelAttribute("user") User user) { // 处理逻辑... return "welcome"; } } ``` 在这个例子中,`MyController` 是一个 Spring MVC 控制器,`handleRequest` 方法处理 GET 请求到 "/hello",并将用户模型传入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值