专栏首页Java技术栈Struts2 为什么被淘汰?自己作死!

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

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 被淘汰?

欢迎留言分享!

本文分享自微信公众号 - Java技术栈(javastack),作者:栈长

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring Cloud 升级最新 Greenwich 版本,舒服了~

    Spring Cloud Greenwich 在 01/23/2019 这天正式发布了: Spring Cloud Greenwich 正式发布,Hystrix...

    Java技术栈
  • Spring Cloud Finchley 正式发布,包含 4 个重大更新!

    在 Spring 的官方博客上已经看到 Spring Cloud Finchley 在 06 月 19 日这一天正式发布了,我们在 Maven 中央仓库也看到了...

    Java技术栈
  • 你必须了解Spring的生态

    Spring不止是提供了IOC、AOP的功能,还提供了大量的基于Spring的项目,拿来用就行了,用于一站式开发,大大降低了开发的难度。 下面列举下主要的一些S...

    Java技术栈
  • 如何更深入地理解Java编程中的框架部分

    在很多年以前,Java程序员做项目使用的是SSH框架。SSH框架一般指的是Struts、Spring、Hibernate,到后来Struts2代替了Struts...

    企鹅号小编
  • FPGA的调试-调试设计的指导原则

    对于FPGA调试,主要以Intel FPGA为例,在win10 Quartus ii 17.0环境下进行仿真和调试,开发板类型EP4CE15F17。主要包括一下...

    碎碎思
  • SSH到底是什么?(彻底搞懂SSH,SSM)

    什么是SSH? SSH在J2EE项目中表示了3种框架,即 Spring + Struts +Hibernate。 Struts对Model,View和Cont...

    葆宁
  • Java到底是不是一种纯面向对象语言?

    Java——是否确实的 “纯面向对象”?让我们深入到Java的世界,试图来证实它。

    哲洛不闹
  • Mysql基础篇--分区类型

    分区是按照一定规则把一个表分解成多个更小的表,更容易管理的部分,当访问数据库应用而言,逻辑上是一个表或一个索引,实际上是可以有数个物理对象组成,每个分区都是一个...

    小土豆Yuki
  • XSS手工利用方式-FreeBuf.COM

    0×00 vps 当我们在插入的xss,在客户端成功执行了相关的操作后,需要将获取的内容传递出来,可以选择购买VPS或者免费的dnslog平台通过ge...

    奶糖味的代言
  • Memcached对比Redis

    Memcached Redis 持久化 否(MemcachedDB可以实现) 是(RDB快照和AOF日志) 内存利用率 使用简单的key-...

    Clive

扫码关注云+社区

领取腾讯云代金券