作者: Shashank Tiwari 翻译: Thomas 来源: O’Reilly
作者简介: Shashank Tiwari(又名Shanky),Saven Technologies的首席架构师。有多年从事高性能应用程序设计和开发的经验。近年来,主要关注面向服务架构。他定期地在许多科技期刊上发表文章,并且常以开发者导师和架构师的身份出席研讨会。他同时也是开源软件的热心支持者。现和他的妻子以及两个儿子居住在美国纽约。
摘要: 本文分析了JBoss Seam有望取代Struts成为Java Web应用框架”下一个王者”的原因,并且指出了Spring和Google Web工具包的不足。
时至今日,Apache Struts仍旧是最受欢迎的Java Web应用框架。然而,对于新的应用开发,它显得有些过时,并且存在很多不足。
目前已经出现了几个有望取代Struts的框架,但是还没有最终的胜利者。你认为谁会当之无愧地成为领导者呢?如果你是一个Java Web应用程序的开发者,你会选择哪种框架呢?
目前已经有了很多受欢迎的Web UI技术,包括富界面、AJAX、RIA和其他一些相似的技术。
然而,在服务器端仍然只有Java——Java中有许多基于JSP和Servlets的、流行的服务器端技术。许多时候,这些服务器端技术需要和客户端的富界面技术一起使用。
举例来说,许多开发人员将AJAX与新生代的Java Web框架JSF合并起来一起使用;还有些开发人员通过Java远程调用库、开源或者商业代码来调用JavaScript和ActionScript,用于远程访问服务器端。
这是否意味着,我们需要应用一个像Apache Shale那样,可以很好地和JSF工作的框架呢?这是否意味着,我们只需要根据Web应用中的Java部分,只使用远程访问包和Servlets呢?或 者意味着,我们应该使用一个包含两者的框架,例如,JBoss Seam?
在回答这些问题之前,让我们先关注一下另外一个问题:了解Sun究竟在说什么。
不幸的是,在这点上,Sun没有明确的信息。它有三种战略,并且在同一时间,它说出了全部这三种。它们是:
1. JSF——基于规范的服务器端组件,用于加强早期的Servlets和JSF模型。
2. Swing——用于Web的、以虚拟机为基础的解决方案。在”富界面时代”,应该有这样一个领导者,毕竟它诞生于10年前。但是,不幸的是,它落伍了。Swing应用框架被誉为能使Swing复活的”救世主”。但是,我不认为这能”破冰”。
3. JavaFX——目前主要是在新闻上会提到它,而实际应用还是很少。富Web应用框架包含手机、网站和任何其他接口,这就是答案所在。而只有时间才能告诉 什么会变成它。我的观点是,在做更多事情之前,Sun已经使开发者们兴奋起来。所以,在开发者们感到失望并且离开这个阵营之前,它实际上可能是一个奇妙的 选择。
现在,我们有了这些信息,但是我对Sun的方向却产生了困惑,我们应该选择哪种作为Web应用技术呢?
我的观点是,Swing会败下阵来(或许Swing技术是伟大的,但是要改变这一印象,还有大量的工作需要做);JavaFX在当前阶段只是一个承诺,在很长时间内,它的真正特性不会变得明朗起来;
因此,唯一可行的选择是JSF。当然,JSF自身有一系列的问题。但是,像Seam这样的框架和包含ICEfaces这样的AJAX组件,将会是一个好的选择。
此外,使用Seam这样的框架,你不需要依赖于JSF,并且你甚至可以使用它来远程访问Java服务器端的纯JavaScript(例如,Dojo 工具包)或者Adobe Flex应用。JSF 2.0和JavaServlets 3.0也即将推出,两者的推出将会对之前的版本有大大的改进。
在我们结束讨论,并且有点倾向于使用Seam作为选择的框架之前,还有两个选择值得考虑——Spring和Google Web工具包。
如果你已经在服务器端使用了Spring,将会发现Spring是一个伟大的选择,项目组里的每个人都知道Spring很棒!
然而,Spring在很多方面,偏离了Java EE标准,但是我建议紧跟标准。
有趣的是,Seam可以和Spring工作在一起,并且Spring beans可以被用作Seam组件。
Google Web工具包是一个充满想象力的工具,它通过把Java代码转换成JavaScript来抚慰Java开发者们。我认为它像”技术摇滚明星”一样吸引了许多开发人员的关注。目前,它也在被大量采用。
然而,它不是一个完整的Web框架。
有趣的是,它也可以和Seam工作在一起。所以,我不认为今天还有什么能够好过Seam?!
JBoss Seam或许不是100%的答案,也或许还没有达到Apache Struts所达到的级别。但是,它已经在领跑了,并且毫无疑问的是,它将继续领跑,除非有新的选择出现。
审校:Richard
原创文章如转载,请注明:转载自JBoss Seam中文站
[ http://www.jbossseam.com/ ]
本文链接地址:http://www.jbossseam.com/2007/11/14/seam-replace-struts/
分享到:
相关推荐
**JBoss Seam 学习资源概述** JBoss Seam 是一个开源的应用程序框架,它整合了JavaServer Faces (JSF)、Enterprise JavaBeans (EJB)、Java Persistence API (JPA) 和其他Java EE技术,旨在简化开发过程,提高开发...
Seam Carving,又称图像拉链,是一种基于能量最小化的图像调整方法,主要用于图像大小的动态调整,而不仅仅是简单的等比例缩放。它能够在保持图像主要结构不变的情况下,根据需要增加或减少图像的宽度和高度。这种...
**JBoss Seam组件中文手册** **一、Seam框架概述** Seam是一个开源的企业级Java框架,由JBoss公司开发,旨在简化Java EE应用程序的开发。它将多种技术如JavaServer Faces (JSF),Java Persistence API (JPA),EJB 3...
Seam不仅仅是一个框架,它还致力于推动Java EE规范的发展。Seam对多个Java EE规范进行了补充和扩展,比如JSF、Servlet等,并且参与制定了新的WebBean规范(JSR 299)。 ##### 9. 强大的胶水功能 Seam作为一个胶水...
8. **Seam工具**:Seam提供了一些工具,如Seam Gen,可以帮助快速生成项目结构和基础代码,学习如何使用这些工具能加速开发进程。 9. **Seam事件和上下文**:Seam引入了一种独特的事件模型和组件上下文,使得组件间...
Seam将Java EE 5.0组件与JSF托管bean紧密集成,即使不使用Java EE 5.0,也可以选择POJO作为Seam组件,这种灵活性使得Seam适用于更多场景。 #### 3. AJAX支持 Seam支持多个开源JSF AJAX库,如JBoss RichFaces和JBoss...
对于初学者,中文版会是一个更好的起点,因为它能帮助快速理解和掌握Seam框架的概念和用法。 总的来说,《Seam in Action》这本书不仅详细介绍了Seam框架的各个方面,而且提供了大量的实例和实践指导,对于希望提升...
该方法必须能被EL访问,并且不需要遵循特殊的接口。它在Seam组件描述符中声明。 10. JSF登录表单创建:创建原生的JSF登录表单,将凭证绑定到表单输入,并将表单动作与身份组件的登录方法进行有线连接。Seam还内置了...
MATLAB_Seam_Carving_seamcarving_ 是一个与图像处理相关的项目,主要涉及到一种称为“seam carving”的技术,这是一种动态图像调整大小的方法,它可以在不改变图像整体视觉效果的情况下,增加或减少图像的宽度和...
根据提供的信息,我们可以推断出这是一本关于 Seam 框架的专业书籍,书名为《Seam in Action》,作者为 Dan Allen 和 Manning 出版社出版。本书主要讲解了 Seam 框架在 Java EE 3 环境中的应用与开发实践。接下来将...
### JBoss Seam中文版知识点详解 #### JBoss Seam简介 JBoss Seam是一个强大的企业级应用开发框架,基于Java EE标准,特别强调简化Web应用的开发流程。它通过整合多种技术如JSF、EJB 3.0等,提供了一种更为高效、...
通过以上知识点的梳理,我们可以看到Seam不仅仅是一个简单的Web开发框架,它还融合了诸如业务流程管理、持久层支持等多种功能。这使得开发者能够更加专注于业务逻辑本身,而不是被底层的技术细节所困扰。对于想要...
Seam框架是一个全面的Java企业级应用开发框架,它整合了JSF(JavaServer Faces)、EJB、CDI(Contexts and Dependency Injection)以及许多其他Java EE技术,为开发者提供了强大的组件模型和丰富的功能,旨在简化...
### SEAM 中文开发指南知识点概述 #### 一、SEAM 框架简介 - **SEAM**:SEAM 是一个基于 Java EE 的企业级应用框架,它简化了复杂的应用程序开发过程,并且提供了丰富的功能来支持业务逻辑的实现。 - **版本信息**...
Seam Carving是一种图像内容感知的尺寸调整方法,它能够在保持图像主要结构不变的情况下,智能地减少或增加图像的宽度和高度。这种方法是由Amit Agarwal和Matthieu Salzmann于2007年提出的,其核心思想是通过找到...
Seam是一个Java EE框架,它将JavaServer Faces(JSF)、Java Persistence API(JPA)、Inversion of Control(IoC)和Enterprise JavaBeans(EJB)等技术融合在一起,为开发复杂的Web应用程序提供了便利。在Seam框架...
### Seam2.0 GA 中文开发指南 #### JBoss Seam简介 JBoss Seam是一个高度集成的应用框架,旨在简化企业级Java...以上内容全面覆盖了Seam2.0 GA中文开发指南的主要知识点,希望能帮助开发者更好地理解和使用Seam框架。
通过阅读这份资料,你应该能掌握Seam框架如何利用语境相关的组件来优化Java EE应用的开发,以及如何在实际项目中应用这些概念。此外,你还可以了解到Seam的其他特性,如国际化、测试支持和性能优化等。总之,深入...
【JBoss Seam 2.0文档详解】 JBoss Seam 是一个开源的企业级开发框架,它旨在简化Java EE应用的开发过程,特别是在Web和富互联网应用程序(Rich Internet Applications, RIA)领域。Seam 2.0是其重要的版本,提供了...