翻译: 双鱼瓶 来源: 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/
分享到:
相关推荐
Seam可以轻松地与其他流行的数据访问框架如JPA(Java Persistence API)、Hibernate等进行集成,为开发者提供了更多的选择。 ##### 7. 集成常用工具和组件 除了JBPM(一个用于业务流程管理的工具)之外,Seam还...
《Seam in Action》是一本专门探讨Seam框架的书籍,该书分为中文和英文两个版本,对于初学者...配合提供的"seam+in+action.pdf"和"u_10_04_02-hilton-leroux.pdf"等学习资源,相信读者可以更深入地学习和掌握Seam框架。
10. **实用工具**:包括邮件服务、定时任务、PDF生成等功能的使用说明。 通过阅读这些材料,开发者可以全面了解和掌握JBoss Seam框架,提升其在企业级Java应用开发中的技能。不论是初学者还是经验丰富的开发者,都...
2. **事件(Events)**: 事件模型是Seam的一大特色,允许组件之间通过发布和监听事件进行通信,增强了组件间的解耦合。 3. **注入(Injection)**: Seam支持依赖注入,可以将一个组件的实例自动注入到其他组件中,...
能量函数越高,表示该位置像素变化对整体视觉效果的影响越大。 2. **寻找最佳路径**: 在确定能量函数后,算法会在图像中寻找一条能量最低的“拉链”(即 seam),这条拉链将沿着图像的垂直或水平方向穿过。在垂直...
9. **Seam事件和上下文**:Seam引入了一种独特的事件模型和组件上下文,使得组件间的通信和状态管理更为简单,这是Seam区别于其他框架的一大特色。 10. **Seam安全性和事务管理**:Seam提供了内置的安全框架和事务...
在这个“seam级联菜单例子”中,我们将深入探讨如何在Seam应用中实现级联选择菜单,这种菜单在用户界面中常见于如国家/地区、省份/城市等层级结构的选择。 级联菜单通常涉及到Ajax技术,它允许部分页面更新而不是...
Seam Security是针对Java Web应用程序的安全框架,它是JBoss Seam项目的一部分,提供了全面的安全解决方案,包括身份验证、授权和身份管理等功能。Seam Security以易于配置和使用为特点,允许开发者快速设置应用程序...
1. **代码理解**:具体分析了页面流控制器的编写方法,以及如何根据用户的选择动态跳转页面。 2. **工作原理**:讲解了页面流如何管理和控制用户的导航路径,同时保持应用的状态一致性。 ##### 1.6 完整的Seam应用...
一般情况下,可以使用梯度绝对值作为能量函数,因为图像的边缘区域具有较大的梯度,移除这些像素会影响图像的连贯性。使用Sobel算子计算图像的水平和垂直梯度,然后取绝对值。 3. **动态规划**:接下来,使用动态...
根据提供的信息,我们可以推断出这是一本关于 Seam 框架的专业书籍,书名为《Seam in Action》,作者为 Dan Allen 和 Manning 出版社出版。本书主要讲解了 Seam 框架在 Java EE 3 环境中的应用与开发实践。接下来将...
### Seam参考手册中文版知识点概览 #### 一、Seam简介及基本概念 ##### JBoss Seam概述 - **Seam**是JBoss家族中的一员,它是一个建立于Java EE平台之上的开源框架,旨在简化企业级应用的开发过程。 - **版本**: ...
### SEAM 中文开发指南知识点概述 #### 一、SEAM 框架简介 - **SEAM**:SEAM 是一个基于 Java EE 的企业级应用框架,它简化了复杂的应用程序开发过程,并且提供了丰富的功能来支持业务逻辑的实现。 - **版本信息**...
MATLAB_Seam_Carving_seamcarving_ 是一个与图像处理相关的项目,主要涉及到一种称为“seam carving”的技术,这是一种动态图像调整大小的方法,它可以在不改变图像整体视觉效果的情况下,增加或减少图像的宽度和...
在实际开发中,Seam注解和标签的结合使用可以极大地简化代码,提高开发效率。例如,通过`@Name`和`@In`注解,可以轻松地管理依赖关系;利用`@Entity`和`@Table`注解,可以方便地实现数据持久化;而`<s:form>`和`s:...
Seam将Java EE 5.0组件与JSF托管bean紧密集成,即使不使用Java EE 5.0,也可以选择POJO作为Seam组件,这种灵活性使得Seam适用于更多场景。 #### 3. AJAX支持 Seam支持多个开源JSF AJAX库,如JBoss RichFaces和JBoss...
JBOSS_SEAM配置
Seam是一种Java EE框架,它在开发企业级应用程序时提供了高度集成和语境相关的组件模型。这个框架的主要目标是简化复杂性,使开发者能够更高效地构建动态、响应式的Web应用。Seam的核心理念是将不同的技术,如Java...
- 选择项目属性,勾选"Generate web.xml deployment descriptor",并配置Seam库。在`Libraries`选项卡中,添加Seam和Hibernate的JAR文件,通常包括seam-x.x.x.jar, hibernate-core-x.x.x.jar等。 2. **配置...
Seam 是一种业级 企 Java 的应规用程序框架。它的灵感源自下列原 : 只有一种“工具” Seam为 应 业务业业 义 种统 组 你的 用程序中所有的 定 了一 一的 件模型。 Seam组件可能是 态义 关关 态 有状 的,包含与几...