`
coyote188
  • 浏览: 1577 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
最近访客 更多访客>>
社区版块
存档分类
最新评论

JBossSeam学习系列之二--什么是JBossSeam

    博客分类:
  • seam
阅读更多

把环境配好之后,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 seam3 实战

    - Seam3拆分了Seam2的功能,提供了一系列模块化的组件,如seam-solder、seam-config-xml、seam-servlet等。 3. JBoss Seam3环境要求: - 支持JbossAS6和JbossAS7.x应用服务器。 - 需要JDK1.5及以上版本支持。 -...

    jbossseam eclipse安装 例子学习.doc

    - **下载文件**:jboss-seam-2.1.1.GA.zip 4. **JBoss Tools** - **下载地址**:[www.jboss.org/tools/download/index.html](http://www.jboss.org/tools/download/index.html) - **推荐版本**:3.0.0 CR1 - *...

    jboss-seam-selectitems

    java jboss seam jboss-seam-selectitems

    JBoss Seam

    JBoss Seam是一个开源的应用框架,它基于Java EE标准,但通过引入一系列创新特性,极大地简化了企业级应用的开发过程。Seam框架主要针对Web应用的构建,它将各种Java EE技术如JSF(JavaServer Faces)、EJB...

    JBoss_Enterprise_Application_Platform-5.0.1-Seam_Reference_Guide-en-US.pdf

    JBoss_Enterprise_Application_Platform-5.0.1-Seam_Reference_Guide-en-US.pdf

    深入浅出JBoss Seam.pdf

    #### 二、JBoss Seam简介 **1. 什么是Seam** JBoss Seam被称为是“Java EE 5.0的一个轻量级的框架”,这个表述意味着Seam是建立在Java EE 5.0之上的一层,为开发者提供了一个更加统一且易于理解的编程模型。Seam的...

    JBoss Seam入门介绍

    ### 一、什么是JBoss Seam? JBoss Seam被定位为“企业Java应用程序框架”,它是专为企业级Java Web应用程序设计的框架,能够将Java EE和JSF(JavaServer Faces)紧密结合,提供一个统一且强大的开发平台。Seam被视...

    jboss seam 教程

    - **本教程**:主要介绍了JBoss Seam的基本概念、核心组件以及通过一系列示例项目来学习Seam的实际应用。 #### 二、Seam基础知识与实例分析 ##### 2.1 第一个Seam应用:注册示例 - **实体类**:`User.java`定义了...

    JBOSS SEAM组件中文手册

    **JBoss Seam组件中文手册** **一、Seam框架概述** Seam是一个开源的企业级Java框架,由JBoss公司开发,旨在简化Java EE应用程序的开发。它将多种技术如JavaServer Faces (JSF),Java Persistence API (JPA),EJB 3...

    jboss seam 2.01GA REF DOC

    - **定义动作**:通过 seam-gen 自动生成的动作模板定义新的动作类。 - **配置组件**:在 `components.xml` 文件中配置新动作组件。 以上是对 JBoss Seam 2.01GA REF DOC 的详细解读,希望对您理解和掌握 JBoss ...

    jboss seam 2.0 中文手册

    整理自jboss seam 中文站,压缩为chm格式,便于广大jboss seam爱好者阅读,所有版权归jboss seam中文站所有。

    jboss seam 中文文档集合

    **JBoss Seam 中文文档集合概述** JBoss Seam 是一个开源的应用框架,它结合了JavaServer Faces (JSF)、Java Persistence API (JPA)、Enterprise JavaBeans (EJB) 3.0 和其他Java EE组件,旨在简化企业级开发。这个...

    Jboss Seam中文版

    ##### 第二章:用Seam-gen快速起步 本章重点介绍了如何使用Seam-gen工具快速创建项目结构,为后续开发打下基础。 1. **准备工作**:包括安装必要的软件和配置开发环境。 2. **建立新的Eclipse项目**:通过Seam-gen...

    Beginning JSF2 APIs and JBoss Seam

    通过以上知识点的介绍,我们可以看出,《Beginning JSF2 APIs and JBoss Seam》不仅涵盖了JSF2和JBoss Seam的基本理论和技术要点,还提供了丰富的实战经验和案例分析,对于希望深入学习这两种技术的开发者来说,是一...

    Jboss Seam 三本最受欢迎的教材

    【JBoss Seam】是Java企业级应用开发框架,它整合了JSF(JavaServer Faces)、EJB(Enterprise JavaBeans)3.0、JPA(Java Persistence API)以及一系列其他技术,为开发人员提供了一个强大的全栈式解决方案。Seam...

    jboss-seam2.0文档

    【JBoss Seam 2.0文档详解】 JBoss Seam 是一个开源的企业级开发框架,它旨在简化Java EE应用的开发过程,特别是在Web和富互联网应用程序(Rich Internet Applications, RIA)领域。Seam 2.0是其重要的版本,提供了...

    [JBoss] JSF & Facelets & JBoss Seam 核心技术 (英文版)

    [TipTec Development] JSF & Facelets & JBoss Seam 核心技术 (英文版) [TipTec Development] Essential JSF, Facelets & JBoss Seam (E-Book) ☆ 出版信息:☆ [作者信息] Kent Ka Iok Tong [出版机构] TipTec ...

    Beginning JBoss Seam - From Novice to Professional

    《从新手到专业:JBoss Seam入门指南》一书由Joseph Faisal Nusairat撰写,旨在引导读者学习并掌握JBoss Seam这一强大的开源轻量级Java EE5应用框架,从而构建企业级和下一代Web 2.0应用程序。本书不仅适合初学者,...

Global site tag (gtag.js) - Google Analytics