`

spring struts2区别

 
阅读更多

【Java技术】终于有SpringMvc与Struts2的对比啦

更新时间:2015/03/18 11:48  来源:源代码教育

目前企业中使用SpringMvc的比例已经远远超过Struts2,那么两者到底有什么区别,是很多初学者比较关注的问题,下面我们就来对SpringMvc和Struts2进行各方面的比较:

1.核 心控制器(前端控制器、预处理控制器):对于使用过mvc框架的人来说这个词应该不会陌生,核心控制器的主要用途是处理所有的请求,然后对那些特殊的请求 (控制器)统一的进行处理(字符编码、文件上传、参数接受、异常处理等等),spring mvc核心控制器是Servlet,而Struts2是Filter。

2.控制器实例:Spring Mvc会比Struts快一些(理论上)。Spring Mvc是基于方法设计,而Sturts是基于对象,每次发一次请求都会实例一个action,每个action都会被注入   属性,而Spring更像Servlet一样,只有一个实例,每次请求执行对应的方法即可(注意:由于是单例实例,所以应当避免全局变量的修改,这样会产生线程安全问题)。

3. 管理方式:大部分的公司的核心架构中,就会使用到spring,而spring mvc又是spring中的一个模块,所以spring对于spring mvc的控制器管理更加简单方便,而且提供了全 注解方式进行管理,各种功能的注解都比较全面,使用简单,而struts2需要采用XML很多的配置参数来管理(虽然也可以采用注解,但是几乎没有公司那 样使用)。

4.参数传递:Struts2中自身提供多种参数接受,其实都是通过(ValueStack)进行传递和赋值,而SpringMvc是通过方法的参数进行接收。

5.学习难度:Struts更加很多新的技术点,比如拦截器、值栈及OGNL表达式,学习成本较高,springmvc 比较简单,很较少的时间都能上手。

6.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变量是共享的,这不会影响程序运行,却给我们编码,读程序时带来麻烦。

7.spring mvc处理ajax请求,直接通过返回数据,方法中使用注解@ResponseBody,spring mvc自动帮我们对象转换为JSON数据。

分享到:
评论

相关推荐

    spring与struts2整合

    Spring 和 Struts2 是两个非常流行的 Java Web 开发框架,它们各自在应用程序的控制层和服务层扮演着重要的角色。Spring 提供了强大的依赖注入(DI)和面向切面编程(AOP),而 Struts2 则是用于处理 HTTP 请求和...

    spring-mybatis-struts2-master ——demo

    《SSM框架整合详解——基于spring-mybatis-struts2-master的实战分析》 在Java Web开发领域,SSM(Spring、Struts2、MyBatis)框架的组合被广泛使用,因其灵活性和强大的功能而备受青睐。本篇文章将深入探讨这个...

    struts2+spring+mybatis+easyui的实现

    Struts2、Spring和MyBatis是Java Web开发中经典的三大框架,它们分别负责MVC模式中的控制层、业务层和服务层。EasyUI则是一个基于jQuery的UI组件库,用于快速构建美观且响应式的Web应用界面。下面我们将深入探讨这三...

    mongo集成spring struts2 json velocity

    Struts2与Spring的集成,可以让Spring管理Struts2的Action实例,实现依赖注入,增强Action的可测试性和可维护性。 JSON在前后端通信中扮演了关键角色。通常,Struts2 Action执行完毕后,会返回一个包含业务数据的...

    spring+struts2整合源码

    在Java Web开发中,Spring和Struts2是两个非常重要的框架。Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,而Struts2则以其优秀的MVC设计模式著称,两者结合可以构建出高效、可维护的Web应用。本文将...

    Spring与Struts2整合

    在Java Web开发中,Spring和Struts2是两个非常重要的框架。Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,而Struts2则以其优秀的MVC设计模式著称,两者整合可以构建出高效、可维护的Web应用。下面将...

    spring3、struts2、mybatis结合的一个简单web实现

    在Java Web开发中,Spring、Struts2和MyBatis是三个非常重要的开源框架,它们分别负责不同层面的任务。Spring提供了全面的结构化和依赖注入功能,Struts2则是一个强大的MVC(Model-View-Controller)框架,而MyBatis...

    struts2+spring+mybatis框架

    Struts2、Spring和MyBatis是Java Web开发中经典的三大框架,它们组合起来可以构建出高效、可维护的Web应用程序。以下是对这三个框架及其整合的详细解释。 **Struts2框架** Struts2是一个基于MVC(Model-View-...

    JavaEE Spring Struts2框架例子.rar

    JavaEE Spring Struts2框架登录例子 JavaEE Spring Struts2框架登录例子 JavaEE Spring Struts2框架登录例子 JavaEE Spring Struts2框架登录例子 JavaEE Spring Struts2框架登录例子 JavaEE Spring Struts2框架登录...

    maven构建spring struts2 ibatis velocity小实例

    《基于Maven的Spring、Struts2、iBatis与Velocity整合实践》 在Web开发领域,Spring、Struts2、iBatis和Velocity是四个非常重要的组件,它们各自承担着不同的职责,共同构建出高效、灵活的Web应用程序。本实例以...

    Spring+Struts2+hibernate+Redis整合

    在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...

    Maven搭建spring_struts2_Hibernate_demo

    Maven搭建spring_struts2_Hibernate项目源码,包括数据库,博客地址:http://blog.csdn.net/fengshizty/article/details/43794911

    Spring+struts2

    Spring 和 Struts2 是两种非常流行的 Java Web 开发框架,它们在企业级应用开发中有着广泛的应用。Spring 提供了全面的依赖注入(DI)和面向切面编程(AOP)功能,而 Struts2 则是用于构建 MVC(Model-View-...

    spring_struts2_myBatis.zip

    《Spring、Struts2与MyBatis整合应用详解》 在现代Java Web开发中,Spring、Struts2和MyBatis是三个非常重要的框架。它们分别在依赖注入、MVC架构和持久层操作方面提供了强大的支持。这个名为"spring_struts2_...

    spring+struts2+ibatis整合的jar包

    在Java Web开发中,Spring、Struts2和iBatis是三个非常重要的框架,它们各自在不同的层面上提供了强大的功能。Spring是一个全面的后端应用框架,提供了依赖注入(DI)、面向切面编程(AOP)、事务管理等功能;Struts...

    Struts2整合Spring、JPA

    Struts2整合Spring和JPA是企业级Java应用开发中常见的技术组合,它们分别负责不同的职责:Struts2作为一款成熟的MVC框架,主要用于处理Web层的请求与响应;Spring作为一个全面的轻量级框架,提供了依赖注入(DI)和...

    Spring struts ibatis Mysql 集成

    2. **添加依赖**:在pom.xml或build.gradle文件中引入Spring、Struts、iBatis和MySQL的相应库。 3. **配置Spring**:创建Spring配置文件,定义bean,包括Struts的Action类、iBatis的SqlSessionFactory等。 4. **配置...

    Spring+Struts2+JPA

    **Spring+Struts2+JPA 整合详解** 在Java Web开发中,Spring、Struts2和JPA是三个非常重要的框架。Spring作为一个全面的轻量级框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能;Struts2是一个强大的MVC框架...

    ibatis 完美例子 一对多 批处理 事务 和 spring struts2集成

    在配置文件中,需要配置Spring的ApplicationContextListener监听器,以便在Web应用启动时加载Spring容器,同时还需要配置Struts2的Spring插件,使得Struts2能够识别Spring管理的bean。 总结,Ibatis通过其灵活的...

    整合struts2和spring

    Struts2和Spring是两个非常重要的Java开源框架,它们在企业级应用开发中扮演着核心角色。Struts2是一个强大的MVC(Model-View-Controller)框架,主要用于处理Web层的业务逻辑,而Spring则是一个全面的企业应用框架...

Global site tag (gtag.js) - Google Analytics