把环境配好之后,Seam的例子也运行起来了,看了seam_reference第一章中如下几个例子讲解:
the registration example
the messages example
the todo list example
the numberguess example
又在满江红的网站上找了seam_reference2.0的中文文档,主要看了《the contextual component
model》一章,看完以后感觉Seam最核心的地方就是其contextual component
model了,不过看完这一章以后只是对Seam有个大概的了解,对其具体的内容,细节还缺乏进一步的了解,对其优点、缺点也缺乏进一步的认识。
然后又找到了《Seam in Action》的电子书,看了一点之后还是觉得这本电子书写得好,内容组织的很好,不象seam_reference后面的章节仅仅是罗列seam的各项功能。
今天把Seam in Action的第一章草草看了一遍,将第一章讲述的内容总结如下:
1、什么是Seam
在Seam in Action中,没有将Seam称之为web framework,而是将其称为application
stack。Seam将Java
EE中的EJB3、JSF、JPA/Hibernate、JAAS等技术融合在一起,提供了更容易使用的方式,比如conversation、page
flows、buisness precesses、rule-based security、JavaScript(Ajax)
remoting、PDF rendering、email组合、charting、file uploads、Groovy
integration等,用以简化web开发。
2、Seam的目标
简化web开发
3、Seam如何集成各类技术
Seam集成了JSF、JPA和POJO Component
在Seam中将EJB3.0中的Session Bean作为JSF的managed bean,直接将表现层和业务层衔接在一起,使得Session
Bean可以直接访问web相关数据,比如request、session、application、JSF的FacesMessage、
Component Tree等。而在不使用Seam时,一般都是使用JSF back bean来作为表现层和业务层之间的中介。
使用annotation中的@Name标注替代了JSF的faces-config.xml中关于managed bean的配置。
Seam不一定必须使用EJB和JPA,也可以使用POJO、Hibernate作为替代。如下图:

上下文相关的组件模型(Seam中的核心概念)
Seam提供了7种类型的上下文,其中属于Seam特有的两种上下文类型分别为:Conversation Context、Business process Context。
Seam提供了统一的组件注册、annotation、异常配置、方法拦截、统一的EL表达式等功能。其中Seam对其管理的组件拦截过程如下图:

4、Seam的核心竞争力
更好的JSF
增强的JSF
Seam对JSF最被认可的改进就是消除了在配置文件中声明managed bean。
Prerender page actions
Managed request parameters (for a given page)
Intelligent stateless and stateful navigation
Transparent JSF data model and data model selection handling
Fine-grained exception handling
Page-level security (per view ID)
基于Annotation的表单验证
Bookmarkable command links (solving the “everything is a POST” problem)
Entity converter for pick lists
Conversation controls
Support for preventing lazy initialization exceptions and nontransactional data access in the view
消除了连接Bean(ELIMINATING CONNECTOR BEANS)
用一幅图可以很好的说明这句话的含义

引入了有状态的变量范围(INTRODUCING STATEFUL VARIABLE SCOPES)

扩展的Persistence Context
Spring中提供了The Session In View Filter,使得persistence
manage可以在一个请求中存在,避免了常见的LazyInitializationException。在Seam中,扩展的Persistence
Context可以跨越多个请求。其实扩展的Persistence Context是Conversation Context、Business
Process Context的基础。
get rich quick
Seam提供了两种方式将Ajax集成到Seam应用中,一种是使用具有Ajax特性的JSF组件,如RichFaces和ICEFaces,另一种是可以在浏览器中使用JavaScript直接调用服务端的组件。
Seam还提供了另外一种意义上的Rich,即将PDF、mail等功能集成到Seam应用中。
提供了一个快速开发环境
代码自动生成
热部署
Seam调试页面
不部署即可以进行单元测试
从目前我个人的理解来看,Seam的作用与能力如下:
Seam将EJB3与JSF整合在一起,消除了JSF与业务代码之间的间隙,直接将表现层与业务层衔接在一起
Seam提出了Conversation Context的概念,将Stateful EJB引入到web开发中,直接与Conversation Context对应
Seam提供了与Jbpm、itext、mail等一系列开源框架的整合,对于需要使用的相关功能的用户来说,提供了便利性
提供了开发工具的整合(Seam Gen与IDE),还可以自动生成部分代码
但由于Seam整合了如此多的框架,带来的一个最大的缺点:学习曲线陡峭,在SSH非常流行的今天,需要面对很多新技术(JSF、EJB3、JPA等),对于一个新手来说难度比较大,如果想使Seam被更多的开发人员使用,必须加强它的文档,目前的文档还是太少了。
分享到:
相关推荐
### 一、什么是JBoss Seam? JBoss Seam被定位为“企业Java应用程序框架”,它是专为企业级Java Web应用程序设计的框架,能够将Java EE和JSF(JavaServer Faces)紧密结合,提供一个统一且强大的开发平台。Seam被视...
标题中的“Jboss seam3 实战”表明,本文将重点介绍JBoss Seam框架的第三个版本的实际应用。JBoss Seam是一个开源的Java EE框架,它通过依赖注入和会话模型,简化了基于Java EE的企业级应用开发。Seam框架为开发者...
整理自jboss seam 中文站,压缩为chm格式,便于广大jboss seam爱好者阅读,所有版权归jboss seam中文站所有。
### JBoss Seam Eclipse 安装与配置详解 #### 一、引言 本文将详细介绍如何在 Windows XP 系统环境下,使用 Eclipse IDE 进行 JBoss Seam 的开发准备工作及环境配置。JBoss Seam 是一款基于 Java 的企业级应用框架...
**JBoss Seam组件中文手册** **一、Seam框架概述** Seam是一个开源的企业级Java框架,由JBoss公司开发,旨在简化Java EE应用程序的开发。它将多种技术如JavaServer Faces (JSF),Java Persistence API (JPA),EJB 3...
**JBoss Seam 中文文档集合概述** JBoss Seam 是一个开源的应用框架,它结合了JavaServer Faces (JSF)、Java Persistence API (JPA)、Enterprise JavaBeans (EJB) 3.0 和其他Java EE组件,旨在简化企业级开发。这个...
[TipTec Development] JSF & Facelets & JBoss Seam 核心技术 (英文版) [TipTec Development] Essential JSF, Facelets & JBoss Seam (E-Book) ☆ 出版信息:☆ [作者信息] Kent Ka Iok Tong [出版机构] TipTec ...
【JBoss Seam】是Java企业级应用开发框架,它整合了JSF(JavaServer Faces)、EJB(Enterprise JavaBeans)3.0、JPA(Java Persistence API)以及一系列其他技术,为开发人员提供了一个强大的全栈式解决方案。Seam...
### 关于《Beginning JSF2 APIs and JBoss Seam》的知识点总结 #### 一、书籍简介与背景 《Beginning JSF2 APIs and JBoss Seam》是一本深入介绍JavaServer Faces 2(简称JSF2)及其相关API以及JBoss Seam框架的...
什么是Seam** JBoss Seam被称为是“Java EE 5.0的一个轻量级的框架”,这个表述意味着Seam是建立在Java EE 5.0之上的一层,为开发者提供了一个更加统一且易于理解的编程模型。Seam的目标是简化企业级Web应用的开发...
### JBoss Seam 2.01GA REF DOC #### 引言:JBoss Seam概览与功能介绍 JBoss Seam 是一个为简化企业级 Java 应用开发而设计的框架。它结合了 JavaServer Faces (JSF)、Java Persistence API (JPA) 和 Java ...
### JBoss Seam 教程知识点概述 #### 一、Seam简介与教程概览 - **Seam**:一个基于Java EE平台的应用框架,旨在简化企业级应用开发。 - **JBoss Seam**:由JBoss提供的Seam实现,提供了一系列功能强大的工具和...
这是中文手册,Seam为持久化集成了JPA和Hibernate 3,为轻量化的异步性集成了EJB Timer Service和Quartz,为工作流集成了jBPM,为业务规则集成了JBoss规则,为电子邮件集成了Meldware Mail,为完整的文本搜索集成了...
java jboss seam jboss-seam-selectitems