近日,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 中文站上也为您准备了相关内容:
评论