Seam Note



Seam是一个企业级Java应用框架。


Seam对所有的业务逻辑定义了一个统一的组件模型,Seam组件是有状态的,用相关的几个良好定义的上下文来声明,包括longrunning、persistent、business process context和conversation context。


在Seam中,表现层组件和业务逻辑层组件没有什么区别。


与J2EE组件不同,Seam组件可以同时用相关web请求来访问状态。


Seam整合了JSF和EJB3.0。


整合了AJAX:Seam支持最好的基于JSF的开源AJAX解决方案:JBoss RichFaces和ICEfaces。这使你在UI上使用AJAX技术而无需写JavaScript代码。


1)业务处理作为第一个类构造:


经jBPM,Seam提供了透明的业务处理管理。通过jBPM和Seam,它使实现复杂的工作流,合作和任务管理变得很容易。


Seam甚至允许你使用jPDL来定义表现层页面流。jPDL是jBPM用于业务处理定义的东东。


Seam为表现层提供了丰富的事件模型。


2)声明状态管理


3)Bijection双射


4)工作区间管理和多种窗口浏览


5)对XML更好的annotations


6)集成测试很容易(Integration Testing)


Seam组件,是POJO类,在本地可以做单元测试。但对于复杂的应用,单独做单元测试是不够的。而Java Web应用在做集成测试是困难的。Seam提供了集成测试方法。你可以写JUnit或者TestNG测试重新产生和用户的整体交互等。


------------------------------------


Presentation Tier:      JSP     Facelets     Portal               表现层


Request Controller:                JSF                            请求控制器


Context Management:                Seam                           上下文管理


State Management:       EJB3     JBoss jBPM     Hibernate         状态管理


------------------------------------