写点什么

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:115901
用户头像

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

关注

评论

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

第十周学习总结

solike

第10周作业

paul

CAP原理

40 张图带你搞懂 TCP 和 UDP

苹果看辽宁体育

计算机网络 计算机基础 计算机

Python进阶——如何正确使用yield?

Kaito

Python

智慧公安二维码定位报警系统开发

t13823115967

解密智联招聘的大前端架构Ada

智联大前端

Serverless 大前端 开发工具

身为程序员还记得C语言经典算法(附带答案)吗?

ShenDu_Linux

c c++ 算法 编程语言

架构师训练营第 1 期第 10 周作业

owl

极客大学架构师训练营

2020双11,Dubbo3.0 在考拉的超大规模实践

阿里巴巴云原生

阿里云 开源 云原生 dubbo

第四代Express框架koa简介

程序那些事

nodejs 异步编程 koa Express 程序那些事

智慧公安大数据可视化分析系统搭建

t13823115967

shell脚本的使用该熟练起来了,你说呢?(篇一)

良知犹存

Linux shell脚本编写

极客时间架构 1 期:第 10 周 模块分解 - 学习总结

Null

腾讯云轻量应用服务器 SSH 配置

邵俊达

SSH 轻服务器

Effective go 笔记-01

邵俊达

Effective-go Go 语言

第06周 CAP 原理

Airship

极客大学架构师训练营

我是如何使计算时间提速25.6倍的

白日梦想家

Python 代码优化 Numpy 代码加速

week6-命题作业

未来已来

第六周-总结

jizhi7

极客大学架构师训练营

除了梦里什么都有之外,我想可以让现实生活中也可以有点什么。

叶小鍵

日本 健康 川村昌嗣 瘦身 走路 运动

成千上万个站点,日数据过亿的大规模爬虫是怎么实现的?

穿甲兵

Python redis 爬虫

架构师训练营第十周命题作业

一马行千里

极客大学架构师训练营 命题作业

极客时间架构 1 期:第 10 周 模块分解 - 命题作业

Null

第 06 周学习总结

Airship

极客大学架构师训练营

如何高效的使用并行流

Silently9527

java8 java 并发

云算力矿机系统开发,区块链挖矿平台搭建

薇電13242772558

区块链 云算力

架构师训练营第十周学习笔记

一马行千里

学习 极客大学架构师训练营

week6-学习总结

未来已来

第六周-作业

jizhi7

Appium上下文和H5测试(二)

清菡软件测试

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