电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

Seam之初体验


发布日期:2020/10/7
 

从本文开始我将会开始一个全新系列的文章——《Seam系列》如果有关心我的博客的朋友应该知道早前一年多的时间我都使用Seam使用开发项目可以算得上是略有小成因此我很希望与大家分享一下Seam的经验

为什么要使用Seam

这个问题Seam的官方文档以经做了很好的回答为了方便不喜欢看文档的朋友(不过可以负责任地告诉你这不是一种好习惯! 如果你希望完整地了解一门技术反复阅读文档是必不可少的甚至可能需要查看源代码当然这是对开源的技术而言)我将其中一些要点抽取出来

只有一种工具 Seam中的表现层组件和业务逻辑组件之间并没有区别 你可以根据你设计的任何架构给应用程序进行分层而不是强制将你的应用程序逻辑硬塞进一个由你目前在使用的任何框架组合所强加给你的不适当的分层配置中

将JSF与EJB 整合 Seam将JSF和EJB的组件模型合二为一消除了胶合代码使得开发者专注于业务问题

集成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 为轻量化的异步性集成了EJB Timer Service和Quartz为工作流集成了jBPM为业务规则集成了JBoss规则为电子邮件集成了Meldware Mail为完整的文本搜索集成了Hibernate Search和Lucene为消息集成了JMS以及为页面片断捕捉集成了JBoss Cache

准备开发环境

要方便地编写Seam应用我要做一些准备工作

下载Seam框架 大家可以通过以下链接下载建议大家下载最新的GA版本解压到本地目录如dSeamDev

下载JBoss应用服务器 大家可以通过以下链接下载建议大家下载最新GA的版本解压到本地目录如dSeamDev

下载Ecplise开发环境 大家可以通过以下链接下载?file=/technology/epp/downloads/release/ganymede/SR/eclipsejeeganymedeSRwinzip解压到本地目录如dSeamDev

下载JBoss Tools插件 大家可以通过以下链接下载?groupname=jboss&filename=JBossToolsALLwinCRRzip&use_mirror=biznetnetworks解压到本地目录如dSeamDev因为这是一个RC版本大家可以通过LINK的方式将其安装到Eclispe这样可以方便大家升级到正式版(将文件夹替换即可)具体步骤

开打Eclipse下的links文件夹如dSeamDeveclipselinks

新建后缀名为*link的文件如JBossToolslink

向文件加入内容如path=d/SeamDev/JBossToolsCR保存并关闭文件

第一个Seam应用

在完成上述的准备工作后大家就可以通过Eclipse的向导生成一个简单的应用啦

运行Eclipse选择菜单Window>Perferences在出现对话框中在左上角的输入框中输入seam如图所示

点击Add在出现的New Seam Runtime的对话框中点击Browse选择Seam的解压路径如DSeamDevjbossseamGAVersion下拉菜单中选择点击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 Runtime点击Next如下图所示

在出现的对话框中点击Browse选择JBoss解压的路径点击Finish

回到New Seam Project对话框点击Target Server中的New

在出现的对话框中选择JBoss AS 点击Finish如图所示

再次回到New Seam ProjectConfiguration中的下拉菜单中选择Dynamic Web Project with Seam (technical preview)点击Next如下图所示

Web Module对话框再点击Next

JSF Capabilities对话框再点击Next

Seam Facet对话框中的Deploy As中选择EARConnection Profile中点击New

Connection Profile Types中选择HSQLDB修改NameHelloDB点击Next

在出现的对话框中点击图标

在出现的对话框中选择HSQLDB JDBC Driver如下图所示

点击Jar List选择hsqldbjar点击Remove JAR/Zip

点击Add JAR/Zip在文件选择对话框中选择Seam文件夹下的lib下的hsqldbjar路径如dSeamDevjbossseamGAlibhsqldbjar点击OK

Database输入框中输入HelloDB选择DB Location路径如FWorkspaceBlogJavaHSQLDBHelloDB可以点击Test Connection如果设置正确应该会出现Success对话框点击OK再点击Finish

回到New Web Project对话框如进行下图所示设置后点击Finish

在可能出现的切换对话框中点击OK

通过上述步骤我们已经新建一个Seam工程在Eclipse的Project Explorer窗口中你可能见到有红色的交叉提示错误点击屏幕下方的Problems窗口双击错误提示打开pagesxml文件如下图所示

将出错的loglevel改为logLevel即可消除错误保存文件

点击屏幕下方的JBoss Server View开启JBoss服务器如下图所示

打开浏览器键//localhost/hello/你将会看到如下图所示页面

点击LoginUsername键入admin再点击Login可以成功登陆

小结

通过上述的步骤我们已经创建了一个简单Seam应用这个应用正所谓是麻雀必小五髒俱全包括WEB的常用的布局图片样式表和简单的登陆实现错误处理等

上一篇:String知识点总结说明

下一篇:Enterprise Architecture 简介