Struts2 为什么被淘汰?自己作死!


分享一份 2020 年架构师学习资料!

Struts2 那些年可谓是风光无限啊,Struts2 + Spring + Hibernate 三大框架一起组成了 “SSH“————牛逼哄哄的 Java Web 框架三剑客。

SSH,有过几年工作经验的 Java 程序员应该都听说过吧?现在刚出来工作的小弟弟、小妹妹们应该很少有人了解它了。

但,那个还属于 SSH 风靡的年代,不管你是在学校学习,还是去培训机构培训,还是去任何一家软件公司面试,SSH 那就是标配了。

时过境迁,现在除了老掉牙的老项目,已经很少有公司还用 Struts2 开发了,甚至从招聘岗位技能上、以及面试者的简历上消失。

栈长特意找了下招聘网站上的职位要求,大多都是要求 SSM 这一套了。


当然,也有传统项目招 Struts2 人才的,但真的非常少了,比如说下面一个平安的项目:

看这个招聘的技术栈就知道是一个老项目了,还是 SSH 那一套。

栈长近几年也面试了不少人,很少有简历写 Struts2 的,招来的新人也都不会用 Struts2,老项目维护起来甚于棘手。

显然,Struts2 已被 Spring MVC/ Spring Boot 所取代,Hibernate 也逐渐被 MyBatis/ Spring Data JPA 所取代,至少在国内是这样,现在已经是 SSM 的天下了,说 Struts2 被淘汰一点也不为过。

推荐阅读:JPA、Hibernate、Spring Data JPA 的关系

SSM了解下:

SSM = Spring + Spring MVC/ Spring Boot + MyBatis

那么,为什么 Struts2 会被淘汰呢?

我认为有以下两个主要原因!

1、漏泄太多

Struts2 漏洞多是出了名的,影响巨大,这也是 Struts2 被淘汰的主要原因,自己作死。

BAT都被祸及过,特别是某东那次事故比较严重,有兴趣的可以查一下,其他涉及的站点更是不计其数了。

我司老项目也一直在为 Struts2 不断打补丁包,替换成本又高,不甚其烦,还好是内部项目。

2、可怕的后浪

随着 Spring 推出 Spring MVC 框架,其天生就能与 Spring 无缝结合,开发效率和性能都要吊打 Struts2, 13年开始就已经有很多企业用 Spring MVC 代替 Strust2 了。

现在,后浪 Spring Boot 大行其道,零 XML 配置,开箱即用,效率翻倍,开发只需要关注业务实现,不用再多关注框架配置,更是加快了 Struts2 的淘汰进程。

Spring Boot 确实好用,系列教程我在公众号Java技术栈​都写了一大堆了,有兴趣的可以关注翻阅学习,都是我这几年写的干货。

当然,除了 Spring 全家桶,市面上还有小而美的 Vert.x、jFinal 等 Web 开发框架,它们也有各自存在的市场,大家各有所需,没有谁更牛逼。

现在的开发市场,除了老项目,还有谁会在新项目上用 Struts2 的?如果是这样,那真的 Struts2 真爱啊,或者是井底之蛙……

你怎么看待 Struts2 被淘汰?

欢迎留言分享!