整個應用程序的目錄結構如下:
crystalblog/
+ doc/ (存放API文檔)
+ report/ (存放JUnit測試結果)
+ src/ (存放java源程序)
+ web/ (web目錄)
| + manage/ (存放blog管理頁)
| + skin/ (存放blog界面頁)
| + upload/ (存放用戶上傳的圖片)
| + WEB-INF/
| + classes/ (存放編譯的class文件)
| + lib/ (存放用到的所有jar文件)
| + search/ (存放Lucene的index)
| + c.tld (使用jstl必須的文件)
| + dispatcher-servlet.xml (Spring配置文件)
| + web.xml (標準web配置文件)
+ blog.war (打包的可部署應用)
+ build.xml (ant腳本)
編寫Ant?腳本
Ant是一個非常棒的執行批處理任務的工具。使用Ant能使編譯、測試、打包、部署和生成文檔等一系列任務全自動化,從而大大節省開發時間。
首先我們把用到的所有.jar文件放到/web/WEB-INF/lib中,然后編寫compile任務,生成的class文件直接放到web/WEB-INF/classes目錄下。如果編譯成功,就進行單元測試,單元測試的結果以文本文件存放在report目錄中。如果測試通過,下一步便是打包成blog.war文件。接著把應用部署到服務器上,直接將web目錄的內容復制到%BEA_HOME%/user_projects/domains/blogdomain/applications/blog/目錄下即可。如果要在Tomcat上部署,直接將整個web目錄復制到%TOMCAT%/webapps/blog/下。
最后,如果需要,可以用javadoc生成api文檔。
系統設計
Crystal Blog共分成三層結構:后臺數據持久層,采用DAO模式;中間邏輯層,采用Facade模式;前端Web層,采用MVC結構,使用JSP作為視圖。以下是Rational Rose的UML圖:
設計Domain對象
設計Domain對象
Domain層是抽象出的實體。根據我們要實現的功能,設計以下實體,它們都是普通的Java Bean:
Account:封裝一個用戶,包括用戶ID,用戶名,口令,用戶設置等等。
Category:封裝一個分類,一共有3種Category,分別用來管理Article,Image和Link,一個Account對應多個Category。
Article:封裝一篇文章,包括Title,Summary,Content等等,一個Category對應多個Article。
Feedback:封裝一個回復,包括Title,Username,Url和Content,一個Article對應多個Feedback。
Image:封裝一個圖片,Image只包含圖片信息(ImageId,Type),具體的圖片是以用戶上傳到服務器的文件的形式存儲的。一個Category對應多個Image。
Link:封裝一個鏈接,和Category是多對一的關系。有Title,Url,Rss等屬性。
Message:封裝一個消息,使其他用戶在不知道Email地址的情況下能夠通過系統發送郵件給某個用戶。
文章來源于領測軟件測試網 http://www.kjueaiud.com/