Struts2 框架刚刚发布最新 2.1 版。该版本做了重大升级,包括重构更多代码到插件框架、通过增加 convention 插件减少 XML 配置和改进 REST 支持。
我采访了 Musachy Barroso——该版本的一位开发人员,请他回答了一些问题:
2.0 和 2.1 之间的最大区别是什么?
2.1 版修改了很多错误(有关 Struts 和 Xwork 的),添加了新的插件,例如 REST、Convention 和 Java Templates,这些都体现了我们的发展方向。
很多功能移到了插件里,能解释一下原因吗?
基本思想就是在 struts 内核中只保留“核心”功能,把其他一切都移到插件里。这种做法便于维护代码库和放弃不再支持的功能,如 Dojo 插件。这些变化没有带给用户什么好处,如果用户不使用提到的插件,Struts 的规模就比较小。
您能谈一下为何 ajax 标签不受重视了吗?
Struts 2 Ajax 标签基于 Dojo 0.4.x,把它们移植到 Dojo 最新版本上意味着完全重写。Dojo 已被证明难以维护,因为新版本层出不穷,甚至在小版本之间代码变动也很大。用户经常选择直接使用 Dojo,因为标签不具有 Dojo 提供的全部功能。由于以上原因和缺少处理 Dojo 标签的志愿者,我们不得不减少对 Ajax 标签的关注。
为何 codebehind 插件变成了 convention 插件,引入了哪些新功能?
Convention 最初由 Brian Pontarelli 作为外部项目开发,后来引入到 Struts。Convention 具有更好更快的类路径扫描器,支持更多配置元素,更好的日志功能,很多配置选项,配置重加载,便于文档化。
什么是 java templates 插件?
Java Templates 插件是"简单主题"(simple theme)的一个快速实现,只使用 Java 编写(标准实现采用 FreeMarker)。该插件的标签比标准的实现快 4 到 5 倍,缺点是无法重写。
目前有很多 web 框架,你觉得 struts2 的优势是什么?
Struts 2 可能是目前最松耦合的框架。它非常易用,很多功能只需要很少或者不需要配置即可使用,容易掌握。同样的,添加插件以覆盖缺省行为也非常简单。松耦合也支持在 Struts 不参与的情况下编写业务逻辑。而且,Struts 可扩展性非常好,目前已运行于一些超高流量的网站上。
您还有什么要补充的吗?
Struts 2.1 花费了很长时间,但是我们已经努力改进了构建和发布流程,所以未来版本更新会更加及时。
Struts 2.1.6 可以通过 http://struts.apache.org/2.1.6/index.html 下载。
查看英文原文: Struts 2.1 Released
评论