你知道springmvc和struts2之间有什么不一样吗?很多刚接触springmvc的人对于这一点都不太了解,下文就对两者的区别进行了详细的介绍,一起来了解一下吧。
1、拦截机制
Struts2
Struts2框架是类级别的拦截,每一次请求就会创建一个Action,和spring整合的时候,Struts2的ActionBean注入作用域是原型模式prototype,之后,通过setter,getter把request数据注入到属性。
Struts2当中Action的一个方法能够对应一个url,但是,类属性却被所有方法共享,这也就不能够使用注解或者是其他的方法标识他所属方法了。
SpringMVC
SpringMVC是方法级别的拦截,一个方法对应一个Request上下文,方法直接基本上是独立的,独享request,response数据。
每一个方法同时又与一个url对应,参数的传递是直接注入到方法当中的,是方法所独有的。
处理的结果通过ModeMap返回给框架。
在Spring整合的时候,SpringMVC的Controller Bean默认单例模式Singleton,所以默认对所有的请求,只会创建一个Controller。
又加上没有共享的属性,所以是线程安全的。
假如,要改变默认的作用域,需要添加@Scope注解修改。
2、集成
SpringMVC集成了Ajax,易用,只要注解@ResponseBody就能够实现,之后,直接返回响应文本就可以了。
Struts2拦截器集成了Ajax,在Action当中处理的时候,通常都要安装插件或者是自己写代码集成进去,使用起来不怎么方便。
3、配置
spring MVC和Spring是无缝的,项目的管理和安全上也比Struts2高,SpringMVC可以认为已经100%零配置。
4、性能
SpringMVC实现了零配置,因为SpringMVC基于方法的拦截,有加载一次单例模式bean注入。
Struts2是类级别的拦截,每次请求对应实例一个新的Action,需要加载所有的属性值注入。
SpringMVC开发效率和性能高于Struts2。
5、框架机制
Struts2-Filter实现,SpringMVC-Servlet实现。
6、设计思想
Struts2更加符合OOP的编程思想, SpringMVC比较谨慎,在servlet上扩展。
7、拦截机制
Struts2有着自己的拦截Interceptor机制,SpringMVC用的是独立的Aop方式。
关于两者的区别你都了解了吧,更多java基础入门内容,请继续关注奇Q工具网来进行了解吧。
推荐阅读:
Spring和SpringMVC的区别是什么?各自的优缺点是什么?