转自:http://doc.chinaunix.net/java/200805/161086.shtml
本文从多角度、较全面地总结了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的组件配置机制。 八、为自动化集成测试而喝彩 任何项目都需要自动单元测试,但是仅仅依靠单元测试是十分危险的。许多的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平台的创新和提高”的开源项目理念上的开源框架。 十、快速上手 只要你试用它,就会爱上它! |
>>更多交流,请到 ChinaUnix【Java论坛】:http://bbs2.chinaunix.net/forumdisplay.php?fid=26 |