隨筆-34  評論-1965  文章-0  trackbacks-0

          前一陣子我利用業余時間幫朋友開發了一個庫存管理系統,雖然系統不算復雜,但是麻雀須小五臟俱全,系統包括了一般企業應用常見的功能如報表等。下圖為系統的截屏。

          Screen Capture of ASMS

          由于最近有空,我覺得有必要把工程清理一下,作為一個模板。那以后再編寫類似項目的時候,簡單套用即可。下圖為系統的總體設計圖。

          SSF Overview

          由上圖,我們可以看出系統使用了Spring、Hibernete、Seam、JSF、Richfaces和Birt等開源框架。相信大家如果有留意企業開發技術的話,對上述名詞應該不會陌生。在整合這些框架的時候,為了使它們更能滿足現實世界的需求和更易用,我進行了一些擴展,起名為SSF(Simple Seam Framework,簡單Seam框架)。

          使用SSF的好處

          由于在以往的工作中經常使用上述框架,我發現它們都或多或少都存在一些不足之處,SSF會嘗試完善它們。

          1. 我們在設計數據庫表的時候都會加幾個用于做安全審查(Audit)的列,如記錄的創建人、創建時間、最后修改人和修改時間等。而且,為了實現數據樂觀鎖,在每個表里加上一個版本列。在SSF所有的數據庫實體(Entity)都繼承虛基類com.whatisjee.ssf.domain.entity.AbstractEntity。它含有上面提及的所有與業務無關的信息和對數據庫映射元數據。如此一來,我們在就不用在每個實體類里重復一遍。另外,通過Hibernate的攔截器(Interceptor),在持久化實體時將上述信息填入數據庫。
          2. 在Spring 2.5版本里,如果我們選擇使用Annotation配置Bean,默認是不能將配置資源注入到Bean之中,所以SSF也添加這個功能,實現原理大家可以參考我的以前寫一篇文章《擴展Spring——使用 Annotation將配置資源注入到Bean中》。
          3. 雖然Seam針對在JSF里進行數據分頁和排序提供了解決方法,但我認為此方法過于簡陋,而且不能使用Richfaces的分頁控件<rich:datascroller>進行分頁。通過SSF數據訪問方式,您可以完美結合Richfaces的分頁控件簡單地實現分頁功能。

            Pagine

          4. 默認的JSF的錯誤提示方式太不用戶友好,不能滿足當今用戶對界面越來越高的要求。通過擴展Seam的<s:decorate>控件的展現方式,當輸入框出現錯誤輸入的情況,它們將會被高亮,當用戶將光標移進這些輸入框,錯誤信息將浮動顯示在其旁邊。如下圖所以。
          5. Error

          6. 通過Birt提供的報表查看器(Report Viewer)集成報表工具的時候,如果不加額外的限制,只要別人知道URL,完全可以不用登錄系統也可以查看系統報表。這顯然不是我們愿意看到的。通過繼承org.eclipse.birt.report.filter.ViewerFilter,SSF可以限制只有已經授權的用戶方可查看報表。

          上面列舉了SSF對不同框架的部分改進。當然,使用SSF的最大好處還是免去您對如何完美整合這些時下最流行框架的操心。

          開始體驗SSF

          以前的廣告有一種常見的做法,就是在對商品大吹特吹之后,蹦出一個家伙問一句:“請問我可以在那里買到XXX呢?”如果大家已經被我上面的廣告弄得躍躍欲試的話,可以到GOOGLE CODE下面用SVN下載工程源代碼。不過在此之前大家需要安裝幾個軟件:

          1. MySQL 5.x,可以到http://dev.mysql.com/downloads/mysql/下載。它的安裝過程很簡單,如果你想省事呢,直接把MYSQL作為自動啟動的服務。當然,你也可以設成手工啟動,需要的的時候才啟動它。
          2. Eclipse IDE for Java EE Developers 3.5.2,之所以不用最新版,是因為JBoss Tools最新發布版本3.1只支持Eclipse 3.5.2。請點擊這里下載,下完解壓到某個目錄即可。
          3. JBoss Tools 3.2,用來支持Seam開發。下載地址:http://downloads.sourceforge.net/jboss/JBossTools-Update-3.1.1.v201006011046R-H111-GA.zip
          4. Tomcat 6.x,下載地址:http://tomcat.apache.org/download-60.cgi

          下載完成之后,可以參考我制作的視頻進行安裝和配置(當然這是我第一次制作視頻,做得不好的地方請大家多提意見)。當然如果你已經有了IDE,可以直接到GOOGLE CODE(http://code.google.com/p/idiner/source/checkout)的SVN(https://idiner.googlecode.com/svn/trunk/)獲取工程代碼。

          小結

          通過上面的介紹,相信大家已經對SSF有部分了解,甚至親自試用了一下。我會在以后的文章時,就如何在SSF上開發相應的需求進行更詳細的講解。感興趣的朋友,敬請關注!:-)

          posted on 2010-11-15 08:48 Max 閱讀(7146) 評論(7)  編輯  收藏 所屬分類: Seam系列

          評論:
          # re: SSF入門 2010-11-15 09:17 | 硫化黑
          感謝樓主的精彩教程  回復  更多評論
            
          # re: SSF入門 2010-11-15 14:51 | junxy
          不知道樓主同時使用spring和seam的原因何在啊?  回復  更多評論
            
          # re: SSF入門[未登錄] 2010-11-15 22:33 | yansj1997
          好,又學到東西了!  回復  更多評論
            
          # re: SSF入門 2010-11-16 10:09 | chenlei
          收藏了,關注后續  回復  更多評論
            
          # re: SSF入門 2010-12-05 10:01 | lizhiguo
          樓主,厲害啊,不知道你的驗證高亮顯示,鼠標移上去顯示消息是怎樣做的,能貼出代碼嗎?謝謝  回復  更多評論
            
          # re: SSF入門 2010-12-05 10:17 | lizhiguo
          哈哈,好大的過程,謝謝樓主,看到工程的代碼了,先前只看了圖,沒有看下面的
            回復  更多評論
            
          # re: SSF入門[未登錄] 2010-12-20 16:32 | 菜菜
          你的報表界面怎么做的,挺好看  回復  更多評論
            
          主站蜘蛛池模板: 揭阳市| 元阳县| 隆尧县| 巧家县| 陕西省| 德清县| 临漳县| 永平县| 淮安市| 乐安县| 和田市| 沙洋县| 遂宁市| 互助| 建昌县| 美姑县| 清远市| 桂阳县| 阳江市| 慈利县| 神农架林区| 新竹县| 镇坪县| 佛山市| 丰顺县| 昌邑市| 尚志市| 台东县| 惠东县| 彭泽县| 循化| 甘洛县| 巴林左旗| 尤溪县| 青海省| 垦利县| 察雅县| 和林格尔县| 皮山县| 新竹县| 平顺县|