歡迎您光臨本站 註冊首頁

Seam之初體驗

←手機掃碼閱讀     火星人 @ 2014-03-10 , reply:0

從本文開始,我將會開始一個全新系列的文章——《Seam系列》.如果有關心我的博客的朋友,應該知道早前一年多的時間我都使用Seam使用開發項目,可以算得上是略有小成.因此,我很希望與大家分享一下Seam的經驗.

為什麼要使用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的常用的布局、圖片,樣式表和簡單的登陸實現、錯誤處理等.


[火星人 ] Seam之初體驗已經有629次圍觀

http://coctec.com/docs/java/show-post-61764.html