转自:http://www.evget.com/zh-CN/info/catalog/10220.html
为什么要使用Seam
这个问题Seam的官方文档以经做了很好的回答。为了方便不喜欢看文档的朋友(不过,可以负责任地告诉你“这不是一种好习惯!” :-),如果你希望完整地了解一门技术,反复阅读文档是必不可少的。甚至可能需要查看源代码,当然这是对开源的技术而言),我将其中一些要点抽取出来:
只有一种“工具” Seam中的表现层组件和业务逻辑组件之间并没有区别。 你可以根据你设计的任何架构给应用程序进行分层,而不是强制将你的应用程序逻辑硬塞进一个由你目前在使用的任何框架组合所强加给你的不适当的分层配置中。
将JSF与EJB 3.0整合 Seam将JSF和EJB3的组件模型合二为一,消除了胶合代码,使得开发者专注于业务问题。
集成AJAX Seam支持两个最好的、开源的基于JSF的AJAX解决方案:JBoss RichFaces和ICEfaces。
将业务流程作为首要的基础建筑 Seam可以选择通过jBPM提供透明的业务流程管理。
声明式状态管理 声明式应用程序状态管理通过Seam定义的丰富的context model(上下文模型)而成为可能。Bijection(双向注入) Bijection(双向注入)和IoC的不同之处在于它是动态的、语境相关的以及双向的。
工作区(Workspace )管理和多窗口浏览 Seam应用程序让用户自由地在多个浏览器窗口中切换,每个窗口都与一个不同的、安全隔离的对话关联。
多些注解(Annotation),少些XML 这让你摆脱了对繁琐的JSF managed bean(JSF受管bean)的配置,减少了所需的XML,只剩下那些真正属于XML的信息(JSF导航规则)。
集成测试轻而易举 Seam组件作为POJO,天生就是可以进行单元测试的。
规范也非尽善尽美 在规范中有许多漏洞(例如,GET请求的JSF生命周期中的局限性),Seam修正了这些漏洞。
Web应用程序不只是服务HTML 页面 Seam为持久化集成了JPA和Hibernate 3,为轻量化的异步性集成了EJB Timer Service和Quartz,为工作流集成了jBPM,为业务规则集成了JBoss规则,为电子邮件集成了Meldware Mail,为完整的文本搜索集成了Hibernate Search和Lucene,为消息集成了JMS,以及为页面片断捕捉集成了JBoss Cache。
准备开发环境
要方便地编写Seam应用,我要做一些准备工作。
下载Seam框架 大家可以通过以下链接下载http://seamframework.org/Download。建议大家下载最新的2.1.1.GA版本。解压到本地目录,如d:SeamDev。
下载JBoss应用服务器 大家可以通过以下链接下载http://www.jboss.org/jbossas/downloads/。建议大家下载最新5.0.1.GA的版本。解压到本地目录,如d:SeamDev。
下载Ecplise开发环境 大家可以通过以下链接下载http://www.eclipse.org/downloads/download.php?file= /technology/epp/downloads/release/ganymede/SR2/eclipse-jee-ganymede-SR2- win32.zip。解压到本地目录,如d:SeamDev。
下载JBoss Tools插件 大家可以通过以下链接下载http://sourceforge.net/project /downloading.php?groupname=jboss&filename=JBossTools-ALL- win32-3.0.0.CR2-R200901280154.zip&use_mirror=biznetnetworks。解压到本地目录, 如d:SeamDev。因为这是一个RC版本,大家可以通过LINK的方式将其安装到Eclispe,这样可以方便大家升级到正式版(将文件夹替换即可)。具体步骤:
开打Eclipse下的links文件夹,如d:SeamDeveclipselinks。
新建后缀名为*.link的文件,如JBossTools.link。
向文件加入内容如path=d:/SeamDev/JBossTools-3.0.0.CR2,保存并关闭文件。
第一个Seam应用
在完成上述的准备工作后,大家就可以通过Eclipse的向导生成一个简单的应用啦。
运行Eclipse,选择菜单Window->Perferences,在出现对话框中在左上角的输入框中输入“seam”,如图所示:
点击“Add”,在出现的“New Seam Runtime”的对话框中,点击“Browse”,选择Seam的解压路径如:D:SeamDevjboss-seam-2.1.1.GA,在“Version”下拉菜单中选择“2.1”,点击“Finish”。
点击“Perferences”对话框中的"OK",关闭对话框。
点击菜单“File->New->Project”,在输入框中输入“Seam”,点击“Seam Web Project”,点击“Next”,如下图所示:
在“Project Name:”输入“Hello”,点击“Target Runtime”中的“New”。
在出现的“New Server Runtime Environment”对话框中,展开“JBoss, a division of Red Hat”,选择“JBoss 5.0 Runtime”,点击“Next”,如下图所示:
在出现的对话框中,点击“Browse”,选择JBoss解压的路径,点击“Finish”。
回到“New Seam Project”对话框,点击“Target Server”中的“New”。
在出现的对话框中,选择“JBoss AS 5.0”,点击“Finish”。如图所示:
再次回到“New Seam Project”,在“Configuration”中的下拉菜单中选择“Dynamic Web Project with Seam 2.0(technical preview)”,点击“Next”,如下图所示:
在“Web Module”对话框,再点击“Next”。
在“JSF Capabilities”对话框,再点击“Next”。
在“Seam Facet”对话框中的“Deploy As”中选择“EAR”,在“Connection Profile”中点击“New”。
在“Connection Profile Types”中选择“HSQLDB”,修改“Name”为“HelloDB”,点击“Next”。
在出现的对话框中,点击图标
。
在出现的对话框中,选择“HSQLDB JDBC Driver”,如下图所示:
点击“Jar List”,选择“hsqldb.jar”,点击“Remove JAR/Zip”。
点击“Add JAR/Zip”,在文件选择对话框中选择Seam文件夹下的“lib”下的“hsqldb.jar”,路径如:d:SeamDevjboss-seam-2.1.1.GAlibhsqldb.jar,点击“OK”。
在“Database”输入框中输入“HelloDB”,选择“DB Location”,路径如:“F:WorkspaceBlogJavaHSQLDBHelloDB”,可以点击“Test Connection”,如果设置正确应该会出现“Success”对话框,点击“OK”,再点击“Finish”。
回到“New Web Project”对话框,如进行下图所示设置后,点击“Finish”。
在可能出现的切换对话框中,点击“OK”。
通过上述步骤,我们已经新建一个Seam工程。在Eclipse的“Project Explorer”窗口中,你可能见到有红色的交叉提示错误,点击屏幕下方的“Problems”窗口,双击错误提示,打开pages.xml文件,如下图所示:
点击垂直滚动条右边的红色错误提示,定位到出错内容,如下图所示:
将出错的“log-level”改为“logLevel”,即可消除错误,保存文件。
点击屏幕下方的“JBoss Server View”,开启JBoss服务器,如下图所示:
打开浏览器,键入http://localhost:8080/hello/,你将会看到如下图所示页面:
点击“Login”,在“Username”键入“admin”,再点击“Login”,可以成功登陆。
小结
通过上述的步骤,我们已经创建了一个简单Seam应用。这个应用正所谓是“麻雀必小五脏俱全”,包括WEB的常用的布局、图片,样式表和简单的登陆实现、错误处理等。
分享到:
相关推荐
9. **实时性与Ajax**:探索Seam如何实现实时更新和Ajax功能,提升用户体验。 ### Seam官方参考手册 Seam官方参考手册提供了详尽的技术细节,包括英文版和中文版,适合在实际开发中查阅具体API和配置。主要涵盖以下...
Seam 提供了许多内置的功能,如状态管理、事件处理等,这些特性有助于改善用户界面的交互性和响应性,从而提升用户体验。 ### 四、结论 《Seam in Action》这本书系统地介绍了 Seam 框架的基础知识和高级特性,适合...
然而,根据描述中的反馈,英文版可能在阅读体验上并不理想,可能需要花费更多的时间和精力去理解。对于初学者,中文版会是一个更好的起点,因为它能帮助快速理解和掌握Seam框架的概念和用法。 总的来说,《Seam in ...
总之,在开始Seam之旅之前,开发者应具备扎实的Java EE基础,了解Seam的基本概念和架构,并熟悉相关的开发工具。通过实践和学习,可以逐步掌握Seam的高级特性和最佳实践,从而提升开发效率和应用质量。
**Seam Carving 技术详解** Seam Carving,又称图像拉链,是一种基于能量最小化的图像调整方法,主要用于图像大小的动态调整,而不仅仅是简单的等比例缩放。它能够在保持图像主要结构不变的情况下,根据需要增加或...
### Seam框架核心知识点详解 #### 一、Seam框架简介 Seam,全称为JBoss Seam,是一款基于Java EE 5的技术栈构建的应用框架。它通过整合JSF(JavaServer Faces)与EJB 3.0(Enterprise JavaBeans 3.0)组件,并充分...
**JBoss Seam组件中文手册** **一、Seam框架概述** Seam是一个开源的企业级Java框架,由JBoss公司开发,旨在简化Java EE应用程序的开发。它将多种技术如JavaServer Faces (JSF),Java Persistence API (JPA),EJB 3...
下面我们将详细讨论Seam中的注解以及与之相关的标签。 1. **Seam注解** - `@Name`: 这是Seam的核心注解,用于为组件定义一个唯一的名字。这个名字可以在JSF视图、表达式语言(EL)或者Seam的事件系统中引用。 -...
- **使用“推”风格("push"-style)的MVC**:介绍了一种服务器主动推送数据给客户端的方法,提高了用户体验。 ##### 第二章:用Seam-gen快速起步 本章重点介绍了如何使用Seam-gen工具快速创建项目结构,为后续...
它还提供了对富客户端应用的支持,比如AJAX功能,这使得Web应用能够实现更丰富的用户体验。 文件"Seam - 语境相关的组件.pdf"很可能是Seam框架深入学习的教程或指南,涵盖了上述概念的详细解释和示例。通过阅读这份...
Seam 2.0是其重要的版本,提供了许多增强的功能和改进,为开发者带来了更高效、更灵活的开发体验。 一、Seam 2.0概述 1.1 框架核心概念 Seam 2.0的核心特性包括组件模型、事件驱动、以及对Java EE服务的深度集成。...
Seam Security是针对Java Web应用程序的安全框架,它是JBoss Seam项目的一部分,提供了全面的安全解决方案,包括身份验证、授权和身份管理等功能。Seam Security以易于配置和使用为特点,允许开发者快速设置应用程序...
Seam框架主要针对Web应用的构建,它将各种Java EE技术如JSF(JavaServer Faces)、EJB(Enterprise JavaBeans)和JPA(Java Persistence API)等集成在一起,提供了更为简洁、高效且功能强大的开发体验。 ### 书籍...
级联菜单通常涉及到Ajax技术,它允许部分页面更新而不是整个页面刷新,从而提高用户体验。在Seam框架中,我们可以利用其内置的Ajax支持来实现这一功能。Ajax交互通常由RichFaces或PrimeFaces这样的JSF组件库提供,...
- **Seam**是JBoss家族中的一员,它是一个建立于Java EE平台之上的开源框架,旨在简化企业级应用的开发过程。 - **版本**: 本手册介绍的是Seam 2.0 GA版本。 ##### Seam的特点 - **上下文相关的组件模型**:这是...
其次,Seam在Java EE之上扩展了功能,比如对富互联网应用(RIA)的支持。它与JavaServer Faces(JSF)深度整合,提供了动态、可扩展的用户界面层。Seam还支持AJAX,使页面交互更加流畅,用户体验显著提升。 再者,...
Seam被视为Java EE 5.0中的缺失环节,为开发者提供了更为便捷的开发体验,同时也是JSR299(WebBeans)的基础。 ### 二、Seam的关键特性 #### 1. 组件模型 在Seam中,一切皆组件,无论你是倾向于采用分层架构(如...
### SEAM 中文开发指南知识点概述 #### 一、SEAM 框架简介 - **SEAM**:SEAM 是一个基于 Java EE 的企业级应用框架,它简化了复杂的应用程序开发过程,并且提供了丰富的功能来支持业务逻辑的实现。 - **版本信息**...
MATLAB_Seam_Carving_seamcarving_ 是一个与图像处理相关的项目,主要涉及到一种称为“seam carving”的技术,这是一种动态图像调整大小的方法,它可以在不改变图像整体视觉效果的情况下,增加或减少图像的宽度和...