Struts2,好久不见
Posted 小谢backup
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2,好久不见相关的知识,希望对你有一定的参考价值。
前天,1月16号,apache官方宣布了struts2新版本(2.3.37)的发布。此次版本是GA(Generally Available)级别的,也就是apache社区质量等级最高的版本。
好久没看到struts2了,近几年都被springmvc抢足了风头,struts2都被大家遗忘在角落里了。既然赶上新版本发布,我们就来聊聊struts2,以及它与springmvc的情感纠葛,最后讨论下struts2未来在何方。
struts2和springmvc
struts2是由struts演化而来的,都是一种MVC框架,之所以要区分是因为修改了很多的底层设计。而struts2因为前几年被发现的设计漏洞导致很多用户纷纷投靠springmvc。那就有一个问题,同属于MVC框架的struts2和springmvc的区别又是什么呢?我们简单看下:
springmvc是单例模式的,struts2是多例的;
springmvc的方法之间基本独立,独享request和response数据;struts2对应的Action则是共享的;
在拦截器的设计上,springmvc使用了AOP,是方法级别的拦截,因此更容易实现Restful API,一个方法对应一个request请求上下文;而struts2的拦截器独为interceptor,是类拦截级别的;
springmvc的入口时servlet,生命周期短;而struts2的入口时filter(servlet的特殊形式),其生命周期较长;
springmvc集成了Ajax,@ResponseBody就是例子;而struts2需要插件或者自写代码来实现Ajax;
因为struts2是多例的,为了保证线程安全,它对每个servlet生命周期变量封装为一个个Map,以供Action使用并保证线程安全,因此耗内存。
。。。。。。。
从上面的区别可以看出,两者同属于MVC框架,但springmvc似乎对开发者更加友好,再加上它与spring同属一个家族,与spring更加兼容;而struts2自身设计的一些高危漏洞,以及一些对比出来的缺陷,我们也不难想象为何大家纷纷投靠springmvc了。
struts2的未来
对于struts2的未来,apache对它还是信心满满,无论是新版本的发布频率,以及对bug的修复,还有一些插件可以弥补自身不具备的特征,都能看出它想重新获得开发者青睐。我还是比较看好它的,也会一直关注它的发展,更希望在这个技术迭代飞速的领域,struts2能更出色!
以上是关于Struts2,好久不见的主要内容,如果未能解决你的问题,请参考以下文章