Blog(WebLog)在Internet上越來越流行。許多網友都有了自己的Blog,通過Blog展示自己,結識更過的網友。比較著名的Blog平臺是基于ASP.net的開源項目.Text。但是它的邏輯全部以存儲過程的形式放在數據庫中。雖然存儲過程能大大提高數據操作的效率,但是存儲過程本身是結構化的程序,無法發揮面向對象的威力,也不便于實現代碼復用。因此,我決定實現一個基于J2EE體系的多層結構的Blog平臺,功能和界面和.Text非常類似,暫命名為Crystal Blog。實現的功能有:發表和編輯文章;多用戶支持;全文檢索;RSS支持;圖片管理;SMTP郵件發送等常見功能。界面如下:
選擇平臺和框架
由于使用J2EE平臺,我們準備采用WebLogic Server 8.1作為運行平臺,使用WebLogic Workshop8.1這個強大的集成化IDE作為開發工具。
數據庫選擇MS SQL Server 2000 SP3,建立一個名為blog的數據庫存儲所有的用戶數據。由于我們并沒有針對特定數據庫編碼,稍后我們會使用其他數據庫測試。在系統設計之前,選擇一個優秀的框架能大大提高開發效率。Spring是一個輕量級的J2EE框架。它覆蓋了從后臺數據庫的JDBC封裝到前臺Web框架的幾乎所有方?面。并且,Spring的各個模塊耦合非常松散,我們既可以用它作為整個應用程序的框架,也可以僅僅使用它的某一個模塊。此外,Spring非常強大的集成功能使我們可以輕易地集成Struts編寫的Web端,或者使用Hibernate作為后端的O/R Mapping方案。
Spring的核心思想便是IoC和AOP,Spring本身是一個輕量級容器,和EJB容器不同,Spring的組件就是普通的Java Bean,這使得單元測試可以不再依賴容器,編寫更加容易。Spring負責管理所有的Java Bean組件,同樣支持聲明式的事務管理。我們只需要編寫好Java Bean組件,然后將它們“裝配”起來就可以了,組件的初始化和管理均由Spring完成,只需在配置文件中聲明即可。這種方式最大的優點是各組件的耦合極為松散,并且無需我們自己實現Singleton模式。
由于后臺要使用關系數據庫存儲數據,使用O/R Mapping必不可少。iBatis是又一個類似于Hibernate的O/R Mapping方案,特點是小巧,配置簡單,查詢靈活,完全符合我們的要求。
除了Spring和iBatis,用到的第三方組件還有:用于全文搜索的Lucene引擎,用于文件上傳的common-file-upload 1.0,用于輸出RSS的RSSLibJ1.0 RC2。
由于使用Spring這個輕量級框架,就無需EJB服務器,只需要Web服務器即可。因此,系統可以運行在WebLogic Server,Tomcat和Resin等支持Servlet和JSP的Web服務器上。
系統設計
很顯然,多層結構的J2EE架構能保證系統的靈活性和可擴展性。我們仍然采用表示層/邏輯層/持久層三層設計。
文章來源于領測軟件測試網 http://www.kjueaiud.com/