码迷,mamicode.com
首页 > 编程语言 > 详细

Struts2与SpringMVC的区别

时间:2017-07-13 23:40:41      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:ons   turn   相对   response   ram   属性   login   请求   struts2   

1.Struts2是类级别上的拦截,一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文。而且Struts过滤后是去Struts配置文件中找Action,而SpringMVC过滤后是去controller中找对应于@RequestMapping注解的url绑定的方法,

从这里看Struts用起来更麻烦,因为你要每个类的请求你都要配置对应的拦截器 如:

1 <struts>
2    <package name="loginpackage"  namespace="/sys"  extends="struts-default" >
3    <action name="login_*"   class="com.tax.action.LoginAction"  method="{1}"  >
4    <result name="mainUI" >/mainUI.jsp</result>
5    <result name="loginUI" >/loginUI.jsp</result>
6    </action>
7    </package>
8 </struts>

而SpringMVC的话:

1     @RequestMapping("api/fleet/delete")
2     @ResponseBody
3     public ReturnResult delete(FleetParam param, String userId) {
4         return fleetService.delete(param, userId);
5     }

2.也因为拦截器原因,导致Struts2的action比较乱,因为它要定义属性来获取请求中参数的数据,而属性在一个类的方法间是共享的(方法间不能独享request、response数据),所以会有点乱。而SpringMVC中请求参数与controller中方法的形参自动配对(在名字相同,或请求参数与形参的属性名相同,或通过@RequestParam注解指定条件下会自动将请求参数的值赋给形参)方法间可以独享request、response数据。

从这点来看,你会发现Struts2的Action看上去有点乱,而SpringMVC的Controller会更简单明了。

3.SpringMVC集成了Ajax,使用非常方便,只需一个注解@ResponseBody就可以实现,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。

4.SpringMVC有IOC、Di、AOP和注解完善的体系。

比如说IOC ,它在一定程度上降低了不同层间的耦合性,这也得益于Java的反射机制,使SpringMVC容器可以动态的生成对象。

比如说AOP,它可以对分散的对象、方法进行共同处理(增删改时的事务)。

 

Struts2与SpringMVC的区别

标签:ons   turn   相对   response   ram   属性   login   请求   struts2   

原文地址:http://www.cnblogs.com/WNof11020520/p/7163627.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!