`
184558421
  • 浏览: 8234 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts MVC与Spring MVC比较

 
阅读更多
1. 机制:spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同。

2. 性能:spring会稍微比struts快。spring mvc是基于方法的设计,而sturts是基于类,每次发一次请求都会实例一个action,每个action都会被注入属性,而spring基于方法,粒度更细,但要小心把握像在servlet控制数据一样。spring3 mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,在spring3 mvc中,一个方法对应一个request上下文。而struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入;struts2实际上是通过setter getter方法与request打交道的;struts2中,一个Action对象对应一个request上下文。

3. 参数传递:struts是在接受参数的时候,可以用属性来接受参数,这就说明参数是让多个方法共享的。

4. 设计思想上:struts更加符合oop的编程思想, spring就比较谨慎,在servlet上扩展。

5. intercepter的实现机制:struts有以自己的interceptor机制,spring mvc用的是独立的AOP方式。这样导致struts的配置文件量还是比spring mvc大,虽然struts的配置能继承,所以我觉得论使用上来讲,spring mvc使用更加简洁,开发效率Spring MVC确实比struts2高。spring mvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上spring3 mvc就容易实现restful url。struts2是类级别的拦截,一个类对应一个request上下文;实现restful url要费劲,因为struts2 action的一个方法可以对应一个url;而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。spring3 mvc的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架方法之间不共享变量,而struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的,这不会影响程序运行,却给我们编码,读程序时带来麻烦。

6. 另外,spring3 mvc的验证也是一个亮点,支持JSR303,处理ajax的请求更是方便,只需一个注解@ResponseBody ,然后直接返回响应文本即可。
分享到:
评论

相关推荐

    struts1原理,struts2原理,spring mvc原理,struts1和struts2,struts和spring mvc

    **Struts2与Spring MVC比较:** 1. **灵活性**:Spring MVC允许更多的自定义,如自定义拦截器、视图解析器,而Struts2的扩展性相对弱些。 2. **依赖注入**:Spring MVC是Spring框架的一部分,天然支持DI,而Struts2...

    spring webmvc struts 2.5 很难找的依赖包

    spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 spring webmvc struts 2.5 ...

    struts2与spring2的整合

    Struts2和Spring是两个非常重要的Java开源框架,它们分别在MVC(Model-View-Controller)架构和依赖注入(Dependency Injection,DI)方面发挥着关键作用。将这两个框架整合在一起,可以构建出高效、可维护的企业级...

    struts MVC 架构实例(图书管理系统)

    Struts MVC通过ActionForm类与模型进行交互,将用户请求的数据传递给模型进行处理。 **2. View(视图)** 视图负责展示用户界面,是用户看到并与其交互的部分。在这个实例中,界面采用了frame技术,可以将网页分割...

    spring.jar spring-webmvc-struts.jar spring-webmvc.jar

    "spring-webmvc-struts"可能指的是Spring与Struts的集成包,Struts是另一个流行的Java Web MVC框架。这个库可能包含了一些桥接代码,帮助开发者将Spring的IoC(Inversion of Control,控制反转)和AOP功能与Struts的...

    spring-webmvc-struts.jar

    spring-webmvc-struts.jar对Struts和Spring整合时需要用到的包

    struts2-spring-plugin-2.2.1.jar

    Struts2-Spring-Plugin-2.2.1.jar 是一个专门为 Struts2 框架与 Spring 框架集成而设计的插件。这个插件的主要目的是简化在基于Struts2的应用程序中整合Spring的功能,如依赖注入(DI)、AOP(面向切面编程)以及...

    struts2+spring练习

    Struts2提供了MVC(模型-视图-控制器)架构,帮助开发者更好地组织和管理应用程序逻辑,而Spring则是一个全面的后端框架,提供依赖注入、AOP(面向切面编程)、事务管理等特性。 在"Struts2+Spring练习"项目中,...

    搭建SSH框架需要引入的Struts2包(log4j,spring-web,struts2-spring-plugin)

    对于Struts2和Spring的配置,我们需要在`struts.xml`和`spring-context.xml`文件中进行相应的设置,例如定义Action类、配置Spring Bean以及指定Struts2与Spring的整合方式。同时,确保web.xml文件中配置了...

    struts1.2 + spring2.5 + hibernate3.2框架demo

    Struts1.2是一个MVC(Model-View-Controller)框架,主要负责处理用户界面与业务逻辑之间的交互;Spring2.5是一个全面的后端应用管理框架,提供了依赖注入、AOP(面向切面编程)、数据访问等服务;Hibernate3.2则是...

    Struts2 MVC_Spring3_MyBatis整合

    Struts2、Spring3 和 MyBatis 是三个非常重要的 Java Web 开发框架,它们的整合是构建企业级应用的常用技术栈。这篇文章将详细介绍这三个框架的整合过程以及各自的功能特点,帮助开发者理解如何在实际项目中高效地...

    Struts2+Spring演示实例源代码

    - **Spring MVC**:Spring提供的MVC框架,与Struts2类似,但更加灵活,可以与Struts2集成。 - **Spring Bean**:由Spring管理的对象,生命周期和依赖关系都由Spring容器控制。 3. **Struts2与Spring的整合**: -...

    Struts2与Spring整合的demo

    - Spring还提供了Spring MVC模块,它也是一个MVC框架,可以与Struts2进行对比或协作。 3. **Struts2与Spring整合的目的**: - 分离展示层(Struts2)和业务层(Spring),使得职责更加清晰。 - 利用Spring的IOC...

    MVC注解Spring-Struts2Spring2hibernate3

    本项目“MVC注解Spring-Struts2Spring2hibernate3”结合了Spring、Struts2和Hibernate3这三大框架,以注解的方式实现了一个完整的MVC解决方案。下面将详细介绍这三个框架以及它们之间的协作。 首先,Spring框架是...

    Struts2整合Spring3.0

    在Java EE开发中,Struts2和Spring框架的整合是一个常见的实践,尤其是当Spring的MVC组件被认为配置较为复杂时。Struts2因其强大的MVC功能和丰富的插件支持,成为了很多开发者的选择。整合这两者可以让开发者充分...

    struts VS spring mvc

    ### Struts 与 Spring MVC 的对比分析 #### Struts 概览 **Struts** 是一个基于 **MVC(Model-View-Controller)** 设计模式的开源框架,由 Apache 软件基金会维护,主要开发者为 Craig R. McClanahan。作为 Java ...

    MVC.rar_SpringMVC Struts_java MVC_mvc_spring-aspects-3.2.2_spri

    标题"MVC.rar_SpringMVC_Struts_java_MVC_mvc_spring-aspects-3.2.2_sprin"指的是一个包含多个MVC框架相关的示例项目,主要涉及SpringMVC、Struts以及Java MVC模式。这个压缩包可能是用于教学或演示如何在实际开发中...

    struts2、 spring4、 spring mvc、 hibernate4、 mybatis的三大框架(三套)

    例如,Spring MVC与Hibernate4的组合适合大型企业级应用,而Struts2和MyBatis则可能更适合中小企业或初学者,因为它们的学习曲线相对较平缓。总之,理解并掌握这些框架的原理和使用方法,对于提升Java Web开发能力至...

Global site tag (gtag.js) - Google Analytics