写点什么

Apache Struts 1 宣告退出舞台

  • 2013-04-08
  • 本文字数:1465 字

    阅读完需:约 5 分钟

近日,Apache 官方网站发布了关于 Apache Struts 1 EOL(End-Of-Life)新闻稿通告。该新闻稿指出,2013 年4 月5 日,Apache Struts 项目团队正式通知广大开发者,Struts 1.x 开发框架结束使命,并且官方将不会继续提供支持。

Struts 1.x 项目创建于 2000 年,最新版本 1.3.10 发布于 2008 年 12 月。同期,Struts 社区将精力专注于推动 Struts 2 框架的发展,截止到 2013 年 4 月,已发布了 23 个版本。据通告称:

此次宣告 Struts 1.x 退出舞台并不再提供支持,主要是因为缺少足够的志愿者来提供支持。

与此同时,在新闻稿中,Apache Struts 团队强烈建议大家学习 Struts 2 框架,Struts 2 更加现代、高度解耦、功能丰富且易于维护。就在 3 月,Apache Struts 刚刚发布了 2.3.12 版,这个版本为维护版本,包含了一些很小的改进,如:

  • 重构所有验证器,可通过 OGNL 设置参数
  • Tag 的 required 属性改名为 requiredLabel 支持 HTML5 的 required 属性
  • 三个新的 Tiles 插件,用于支持 Tiles 3 结果类型
  • 改进支持 JBoss 5 的 Convention 插件

此外,对于正在使用 Struts 1.x 的开发者或团队,Apache Struts 团队就常见问题给出了回答:

Struts 1.x 不再提供支持后,现有资源如何处理?

所有资源将会保留,Apache Struts 首页将会提供相关文档的链接,同时也会保留 Struts 1.x 各个版本的下载地址。所有的 Struts 1 源代码均可在 Apache Struts 代码仓库中找到,并且永久保留。所有发布的 Maven 构件(Maven artifacts)均可通过 Maven Central 访问。

如果以后发现和 Struts 1.x 相关的安全问题或严重的 Bug,是否还会有相应的修复?

目前来看,是不会的,这也是要宣布 EOL 的原因。既然现在已经宣布不再提供支持,开发者也需要寻找移植方案,将现有的 Struts 1 代码移植到其他 Web 框架上。

现在是不是就需要将 Struts 1 从我的项目中删除?

就目前 Struts 团队了解的情况来看,不必立即删除。然而需要意识到的是,未来将不会有针对安全和 Bug 问题的修复,一旦未来发现上述情况,开发团队需要自己来应对。

如果需要将现有项目从 Struts 1 移植到其他 Web 框架,有什么推荐?

您也许会意识到,目前为止 Struts 1 还没有直接的替代品。您需要根据现有代码的情况,来选择新的开发框架,并通过调整代码来适应新的框架。虽然有很多基于 Action 的 Java Web 开发框架都可以实现这个效果,但我们还是会推荐 Struts 2。因为他更先进、高度解耦、功能丰富且更易于维护。他继承了 Struts 1 的核心理念,但在架构和 API 设计上要比 Struts 1.x 先进很多。此外,其他的替代框架也不错,如 Spring Web MVC Grails Stripes

如果想继续对 Struts 1 进行维护,我们可以做些什么?

可以随意的为 Struts 1 进行贡献。有两种方法:从现有代码建立分支并进行改进或吸引社区人士来继续推动 Apache Struts 项目。如果有足够的人愿意并且有能力来继续提供补丁、进行维护以及长期管理的话,我们认为有这样的支援者的情况下,或许 Struts 1 还有希望。

此消息一出,微博人士也纷纷感慨:

蒼氵: 还记得进公司的第一件事就是把纯 JSP 的实现的功能用 Struts1 实现, 好怀念啊…感谢 Struts1。

猫砂西瓜: 忘不了那一屏幕的 form bean。

KDS- 黑暗浪子: 逝去的总归要逝去,一切向前看。仔细想想,从 03 到 07 年我也用这个 5 年了。

Kaloo2010: 面试再问这个就有的说了。 识时务的马: 怀念一下,当初那个堆砌 ActionForm 的青葱岁月。

此外,为了给读者提供更好的参考,InfoQ 中文站上也为您准备了相关内容:

2013-04-08 19:116202
用户头像

发布了 156 篇内容, 共 58.2 次阅读, 收获喜欢 7 次。

关注

评论

发布
暂无评论
发现更多内容

maven构建docker镜像三部曲之三:推送到远程仓库(内网和阿里云)

程序员欣宸

Java Docker 5月月更

Git进阶系列 | 3. 基于Pull Request实现更好的协作

俞凡

git 最佳实践

不造芯,不配做互联网巨头

IC男奋斗史

芯片行业思考

都2022了,不会还有人不会idea注释相关的配置吧,速进本文

芝士味的椒盐

Java IDEA 5月月更

13W字!银四巨作:Java进阶架构师核心手册

爱好编程进阶

Java 程序员 后端开发

SAP 电商云的 Spartacus Storefront 部署到 CCV2 的前提条件

汪子熙

typescript 电商 SAP commerce 5月月更

网站开发进阶(五)网站发布之道

No Silver Bullet

Apache tomcat IIS 5月月更 网站发布

网站开发进阶(九)应用内存检测

No Silver Bullet

内存泄露 变量声明 5月月更

超级原始人系列盲盒即将上线,PlatoFarm赋能超多权益

西柚子

如何登录到你的 WordPress 管理仪表板

海拥(haiyong.site)

5月月更

电阻电路的等效变换 (Ⅱ)

謓泽

5月月更

用户体验思维 7 大陷阱

龙国富

产品设计 UI UX 用户体验 产品设计与思考

【愚公系列】2022 年 05 月 二十三种设计模式(三)-建造者模式(Builder Pattern)

愚公搬代码

5月月更

开源字节系统白皮书

源字节1号

软件开发

C语言总结_字符串全方位练习

DS小龙哥

5月月更

MyBatis 的动态 SQL超详细讲解

顾言

mybatis 动态SQL

[Day34]-[二叉树]有序链表转换二叉搜索树

方勇(gopher)

LeetCode 二叉树 数据结构和算法

《数据中心白皮书 2022》揭秘“东数西算”下数据中心高性能计算的六大趋势八大技术

GPU算力

Git进阶系列 | 5. Rebase vs Merge

俞凡

git 最佳实践

130道BATJM真题及解析:集合+Spring

爱好编程进阶

Java 程序员 后端开发

Git进阶系列 | 6. 交互式Rebase

俞凡

git 最佳实践

使用MyBatis-Plus代码生成器(数据库MySQL/Sqlite

芝士味的椒盐

Java mybatis 5月月更

1篇文章全面总结2020年Java面试知识,掌握这些你也能进大厂!

爱好编程进阶

程序员 后端开发

2020字节跳动秋招技术面试题:Kafka+反射

爱好编程进阶

Java 程序员 后端开发

互联网跨界造芯的“菊与刀”

IC男奋斗史

芯片 芯片行业思考

毕业设计-设计电商秒杀系统

默光

秒杀架构设计 架构训练营5期

Go链表与切片比较

jinjin

List 链表 slice Go 语言 切片

SecurityContextHolder之策略模式源码分析

急需上岸的小谢

5月月更

nginx配置系列(五)限制连接数

乌龟哥哥

5月月更

DevOps系列之 —— DevOps概览(二)新型软件技术及交付模式

若尘

DevOps 5月月更

Git进阶系列 | 4. 合并冲突

俞凡

git 最佳实践

Apache Struts 1宣告退出舞台_Java_贾国清_InfoQ精选文章