统一框架 java_Java Web框架的统一努力

Java Web框架种类繁多,花样迭出,主流一点的就有Struts,Webwork,SpringMVC,JSF,Tapestry,至于非主流的就更加不计其数了。还有很多基于这些框架的衍生框架,例如基于Struts的beehive,基于JSF的JBoss Seam,基于JSF的MyFaces,Shale等等。对于开发人员来说,过多的选择是一种沉重的负担,不但需要花更多的时间去学习,也需要更多的时间去维护基于不同框架的代码。

由于面临着dotnet统一的web框架webforms以及异军突起的rails的强势挑战,Java业界也感受到竞争的丝丝寒意,这不,众多Java Web框架的核心开发人员终于可以坐到一起,商量着Web框架的统一和互操作的问题了。

由众多Java Web框架的开发人员组成的一个团队......Java Web Alignment Group,这其中包括了Struts,Webwork,JSF,Beehive,JBoss Seam,Spring MVC等众多框架核心开发人员组成,目标则是加强交流和合作,促进各个Web框架之间的协作,给Java开发人员提供尽量方便的解决方案。

目前这个Group的讨论已经得到了一个显著的进步:struts,webwork和beehive的合并!

我们知道Web框架主流上分为两类:MVC框架和事件响应机制框架。MVC框架有Struts,Webwork,Spring MVC,以及一些基于这些框架的框架,如Spring Webflow, Beehive等等;事件框架有JSF,Tapestry,Echo等。除此之外,还有一些连接两者的框架,如Struts Shale等等。

经过一段时间的讨论,Struts,Webwork和beehive三方宣布合并,共同发展下一代MVC模式的MVC框架......Struts Ti。它将主要以Webwork为核心,集成Beehive的annotataion和pageflow功能,推向Struts用户群体,并且加强和 JSF的集成能力。

这次合并的前景是值得期待的,在MVC领域,主流的选择将在Struts Ti和Spring MVC之间。不过从目前的情况来看,Struts Ti不会进一步和Spring MVC进行合并。Spring MVC的开发人员希望保护现有的Spring MVC合作伙伴和客户,以及在Spring webflow上面的巨大投入。

我认为合并对于webwork和struts来说这都是一个重大利好的消息。从整个事件来看,并不是单纯的 webwork开发团队合并struts团队这么简单,事实上struts1.3和webwork2.2仍然按照原定roadmap继续发展,而两个团队核心开发人员发起一个新的项目Struts Ti,它的roadmap是:

Ti phase 1 = WebWork 2.2 + Struts 1.x compatibility library and migration tools

Ti phase 2 = phase 1 + Commons Chain integration + Beehive's Page Flow + simplified annotations + quick development mode

从这个roadmap可以看出来,新项目Struts Ti是以webwork的整体架构为基础,辅以Struts的一些库,并且该项目的四个发起人联名的声明中这样说:

As some of you know, the underlying idea behind Ti was to use WebWork as the core of Struts Action Framework 2.x. Conceptually, WebWork and Struts 1.x are very similar. We've often said, without embarrassment, that WebWork does many things better than Struts 1.x. Meanwhile, WebWork has the ability to provide a layer of almost full backwards-compatibility for Struts 1.x, and we have already demonstrated we can integrate Beehive's (very cool) Page Flow with WebWork.

这段话明白无误的指明新框架是以webwork为core的,并且webwork可以提供一个抽象层,以完全向后兼容Struts1.x,并且struts还可以集成Apache Beehive的Page Flow。

因此,我想那些担心webwork从此消失的人可以打消顾虑了,消失的只是webwork这个名字,和com.opensymphony的package前缀,而webwork的程序架构却不会消失。

对于Struts的使用者来说,Struts虽然拥有一个庞大的使用群体,但是Struts在技术上已经非常落伍,再不进行重大的架构革新,势必要被淘汰。因此,这个事情是Struts开发团队的一次自救的革命,从Struts1.3到Struts Ti的改变如同EJB2到EJB3的改变,旧的Struts1.3的架构被完全抛弃,吸收了更加先进的开源软件和架构之后,推出的新东西。

对于Webwork的使用者来说,获得了更加广泛的用户群体和接受度。并且核心开发团队也得到了壮大,相信未来的新版本推出速度可以更快了,而不是现在这样,对webwork2.2都望穿秋水了。

另外非常值得注意的是,Struts Ti的目标可不止集成Webwork这么简单,看看它的phase 2,集成Beehive的Page Flow,JDK1.5的annotations,目标是Ruby on Rails般的快速开发模式,多么诱人的前景!

有兴趣的可以看一看Struts Ti的项目介绍和进展状况:

从这里一项一项看下来,Struts Ti基本上就是在webwork2.2上面整合了Beehive的annotation和page flow,好像没有struts1.x的什么技术继承下来。恐怕唯一继承自struts的只有struts的用户群了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值