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 被淘汰?
欢迎留言分享!
推荐去我的博客阅读更多:
2.Spring MVC、Spring Boot、Spring Cloud 系列教程
3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程
觉得不错,别忘了点赞+转发哦!
Struts2 为什么被淘汰?自己作死!的更多相关文章
- 盘点 6 个被淘汰的 Java 技术,它们都曾经风光过!
大家好啊,今天栈长给大家分享下我的开发历程中,我知道的那些被淘汰的技术或者框架,有些我甚至都没有用过,但我知道它曾经风光过. 废话不多说,下面我要开始吹了-- 1.Swing 下面这个是用 swing ...
- struts2被淘汰的原因
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个Servlet.在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互.Struts2 ...
- Struts2后期(这框架目前正处于淘汰状态)
Struts2第三天 课程回顾:Struts2框架的第二天 1. Servlet的API * ActionContext对象 * ServletActionContext对象 2. 结构类型的跳转 * ...
- Struts2中期(这框架目前正处于淘汰状态)
Struts2的第二天 Struts2的第二天的内容 1. Struts2框架中的Servlet的API的使用 2. Struts2中Action接收请求参数 3. Struts2中自定义拦截器 案例 ...
- Struts2前期(这框架目前正处于淘汰状态)
Struts2第一天 Struts2的学习路线 1. Struts2的入门:主要是学习Struts2的开发流程(Struts2的开发流程.常见的配置.Action类的编写) 2. Struts2的Se ...
- 【转】eclipse 创建struts2
转载地址:http://blog.163.com/sean_zwx/blog/static/169032755201091595558378/ 今天我用Ecipse搭建Struts框架,并且使用Str ...
- Struts 2.3.24源码解析+Struts2拦截参数,处理请求,返回到前台过程详析
Struts2官网:http://struts.apache.org/ 目前最新版本:Struts 2.3.24 Struts1已经完全被淘汰了,而Struts2是借鉴了webwork的设计理念而设计 ...
- android--使用Struts2服务端与android交互
一,服务器端: web.xml文件: <?xml version="1.0" encoding="UTF-8"?> <web-app vers ...
- 学习Struts--Chap01:了解Struts2
学习之前的一些话: 这是我系统学习Java知识这么久以来第一次接触web框架,很不幸的是刚开始学习它就听到很多人说这个框架现在已经过时了,很多企业现在开发项目几乎不会用这个框架了,就是有用这个框架的项 ...
随机推荐
- PHP出现SSL certificate:unable to get local issuer certificate的解决办法
当本地curl需要访问https时,如果没有配置证书,会出现SSL certificate: unable to get local issuer certificate错误信息. 解决办法: 1.下 ...
- python 异步 I/O
如果你想了解异步编程,那么必然会涉及出许多相关概念. 堵塞/非堵塞 同步/异步 多进程/多线程/协程 为什么我要学习这个话,因为我想搞懂异步框架和异步接口的调用.所以,我的学习路线是这样的: 1.py ...
- 10.添加script标签,判断onload是否完成
class Tools { static loadScript(url, callback) { let old_script = document.getElementById(url); if ( ...
- Laravel 5.8 RCE 分析
原帖地址 : https://xz.aliyun.com/t/6059 Laravel 代码审计 环境搭建 composer create-project --prefer-dist laravel/ ...
- Springboot:logback日志管理(九)
Springboot默认使用的日志框架就是logback 创建自定义的logback-spring.xml放在resources类目录下即可 logback-spring.xml: <?xml ...
- PostMan接口测试(很全面的接口测试教程)
一:理论部分 1. 前言 在前后端分离开发时,后端工作人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性.而这要求前端开发进度和后端进度保持基本一致,任何一方的进度跟不上 ...
- php表格--大数据处理
参考来源1:https://blog.csdn.net/tim_phper/article/details/77581071 参考来源2:https://blog.csdn.net/qq_376822 ...
- php正则匹配到字符串里面的a标签
$cont = preg_replace('/<a href=\"(.*?)\".*?>(.*?)<\/a>/i','',$cont);
- SQLI-LABS学习笔记(三)
第十一关 这一关是POST注入 先利用bp抓包抓到post传输的参数数据 抓到传递的表单为 uname=admin&passwd=admin&submit=Subm ...
- Docker help详细帮助
常用的 docker 命令 docker # docker 命令帮助 Commands: attach Attach to a running container # 当前 shell 下 attac ...