选择Seam的十大理由
翻译: 双鱼瓶 来源: JBoss
摘要: 本文从多角度、较全面地总结了Seam的优势。
一、增加AJAX特征的最快捷方式在功能上,Ajax改变了Web的交互模型。传统Web客户端所使用的同步、粗粒度的请求,引发了很多服务器端应用吃掉少量的缓存,并且没有带来缓存级别的并发操作。
许多情况下,”无状态”的架构只是基本的解决方案,却远远不够!Ajax客户端通过很多异步、并行、细粒度的请求和服务器连接,使开发人员可以轻易地连接和获取远端”数据库”信息。
可是如果状态在交互时被保存到内存,并行相关的bugs将会非常危险,因为Java EE平台并不处理会话级别的并发。
最初设计的时候,Seam被构想成在Ajax基础上,整合并行模型和状态管理模型。
Seam1.1整合了许多基于JSF的开源Ajax解决方案,像ICEfaces和Ajax4JSF,同时加入了Seam的状态和并行管理引擎。开 发人员可以轻松地在程序中应用Ajax,甚至不需要学习JavaScript;并且将远离单独使用Ajax时潜在的bugs和性能问题。
二、开始使用EJB 3.0的最简单方式EJB 3.0是成熟的事务组件模型,也是最新JPA(Java持久层API)关注的技术,但支持EJB 3.0的Java Web应用框架却很少。这样,你需要去写自己的整合代码。但在大多数情况下,开发人员整合的方式并不能充分利用EJB 3.0的优势。
EJB 3.0是Seam使用的核心技术,你可以无处不在地使用整合的EJB 3.0组件模型。因为在Seam应用中,每个类都是一个EJB组件。你甚至不用写任何整合代码,即可”美化”你的框架。
当然,你也可以选择不使用EJB 3.0,JBoss Seam使你”鱼与熊掌可兼得”。
三、充分挖掘JSF特性的最佳方式JSF已经有许多组件库和插件以供使用,也当之无愧地成为Java界最有吸引力的Web开发框架。但是JSF过度地依赖于XML配置,并且创建丰富网页界面的特性并不多。
Seam将使用注解的方式代替繁琐的XML配置,减少代码量的同时也提高了开发效率。
Seam在很多方面扩展了JSF的功能:包括多窗口操作、工作空间管理、基于模型的验证、基于jBPM的页面流、国际化和页面分段缓存等等。
Seam甚至还加入了控制标签化页面的机制。
JSF没有涉及访问事务资源,Seam考虑到了这一点,将JTA、JPA和EJB 3.0与JSF无缝地整合起来。
四、实现业务流程管理(BPM)的最简单方式jBPM是用于解决存在复杂人员协作或者复杂用户交互的Web应用程序的解决方案。
BPM技术不仅方便开发人员和分析人员建模、应用以及优化业务过程,而且可以在整个操作和管理过程中评估业务流程的效率和发掘业务流程中会出现的问题。
Seam深度整合了jBPM,使用jBPM进行任务管理和页面流管理将变得异常简单。
Seam和jBPM的结合将使一些项目的开发时间减少一个月左右。
五、使得CRUD同样简单Seam也同样处理复杂企业应用中的棘手问题:增删改查。但这并不意味着解决的方式会很难上手。
在创建数据驱动的应用中,Seam将整合现有易用的数据层框架,包括JPA、Hibernate等,使开发人员可以通过一些数据库反向工程工具和命令行工具高效地开发数据库应用。
六、持久层工作将是”小菜一碟”Seam来源于Hibernate社区,由Hibernate创始者Gavin King设计和开发。
Seam会话模型解决了传统无状态的Web应用架构导致的持久层相关问题。无论你是使用Hibernate还是JPA,Seam使用扩展的持久化上下文都将使开发变成简单,同时也可以使开发人员避免在集成环境下使用持久化上下文时不必要的状态重复。
七、注释功能Seam是第一个从始至终、从持久层到表示层,都使用Java 5注释功能的程序模型。
你将不会再因为繁琐的XML配置而感到迷失方向。同时在Seam中,开发人员也可以使用XML,Seam提供成熟的基于XML的组件配置机制,使开发人员不会再在XML配置里迷失。
八、为自动化集成测试而喝彩任何项目都需要自动单元测试,但是仅仅依靠单元测试是十分危险的。许多的bugs出现在组件之间或者组件和容器的交互过程中。单元测试无法捕捉容器的行为,也无法捕捉组件间的交互。
Seam引入了一种新方式:”自动化集成测试”。你可以模拟每个请求或者会话的全部业务流,来测试应用中从持久层到表示层的所有Java代码。
九、开放性标准与开源的结合Seam建立在实现开放标准的、像JSF和 EJB 3.0这样的开源项目基础上,并且整合了其他优秀的开源项目,如Hibernate、jBPM、Facelets、Drools等等。
Seam的缔造者们都是EJB、JPA、Bean验证和JSF等领域的专家组成员,并且领导过制定Web Beans规范(JSR-299)的专家组用于将Seam里的一些想法带入Java EE标准中。
Seam项目是完全建立在”致力于Java平台的创新和提高”的开源项目理念上的开源框架。
十、快速上手只要你试用它,就会爱上它!
审校:骆驼
原创文章如转载,请注明:转载自JBoss Seam中文站
[ http://www.jbossseam.com/ ]
本文链接地址:http://www.jbossseam.com/2007/11/10/ten-good-reasons-to-use-seam/
6 楼 dingyuan 2007-11-10 seam没有最佳实践,不敢用,相关文档书籍,都不太多 7 楼 qtlove 2007-11-11 to maku:
Struts2只是java web层的框架,seam则是基于jsf、ejb3等的框架集成。
可以参考:http://www.iteye.com/news/320
to fangzhouxing:
转载而已,更多的可以去JBoss Seam中文站去看看。
to Julian:
seam2.0已经GA了啊,http://www.jbossseam.com/2007/11/06/jboss-seam2/
to javafanwind:
哈哈,和我想法一样,^_^
to dingyuan:
目前的seam资料,主要是英文的。期待满江红社区的seam2.0参考手册的发布。
书籍方面,http://groups.google.com/group/jbossseam上有一些英文的,你可以去看看。 8 楼 kyo100900 2007-11-12 seam走的算是正统的官方路线吧:JSF+EJB3.0是最好的说明。
不过,大家买不买账还得需要时间来验证 9 楼 qtlove 2007-11-12 to kyo100900:
是啊,Seam的明天,一定程度上取决于JSF的明天。Seam确实解决了JSF自身存在的一些问题,并且各大厂商如此划一地推动JSF,Seam确实觉得期待! 10 楼 jameswxx 2008-01-02 我认为seam将来会不会成为趋势现在很难讲,虽然它走的的确是标准的官方路线,但在java这个自由的世界,一切都取决于开发者。
11 楼 风之狐 2008-05-09 我喜欢seam的这种简洁注入式的思想,但却很讨厌jsf这种缺乏灵活性的框架。 12 楼 ruderal 2008-05-11 RIA来了,我们还用JSF么?! 13 楼 fangshun 2008-05-11 ruderal 写道RIA来了,我们还用JSF么?!
“vista 来了,我们还用浏览器么?!” 14 楼 wetouns 2008-06-03 希望seam也能够火起来,它真的很优秀 15 楼 Arden 2008-06-03 我觉得用seam的话还不如用grails 16 楼 lgx522 2008-06-03 在实际测试中,Grails比RoR不过快个3倍左右,而Seam,不提了,或许是本人还未掌握部署方法吧。 17 楼 Rossalee 2008-06-17 想试试一下了。 18 楼 fireflyc 2008-06-17 使用seam的请慎重考虑。
假如不熟悉JSF的话那么是不可能成功的。 19 楼 打倒小日本 2008-06-17 我们现在的项目就是使用SEAM开发的 感觉很好
至少使用JSF的人一定要学习 20 楼 灵灵然 2008-11-02 刚开始接触!一切学习——ing