註冊 | 登入 | 全文檢索 | 排行榜 |
![]() |
» JWorld@TW
» Java Application Framework
» Spring
![]() ![]() |
![]() ![]() ![]() ![]() |
己加入精華區 |
by koji at 2008-07-22 09:19 |
本主題所含的標籤 |
作者 | Java Spring 簡單範例操作與學習指引〈2〉 [精華] | ||||||
kenming
![]() ![]() ![]() ![]() ![]() ![]() 發文: 194 積分: 10 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() *** 第一個階段子目標 *** 1. 確實在 Eclipse IDE工具內建立可以完整開發 Spring-based 的應用程式。 2. 新增 middle-tier性質專案(純粹是 java class,沒有 UI),撰寫 {員工薪資管理Control.java} 這個控制物件的程式碼框架 (skeleton),新增一個 Spring Beans 的 XML設定檔 (config file),在設定檔內設定該控制物件的相關屬性。 3. 利用 JUnit 測試框架 (Test Framework, Eclipse 內建),馬上撰寫該控制物件的功能測試程式碼。 一、新增專案 1. 選擇 [File]→[New]→[Project…],當出現 [New Project] 的 wizard 對話框時,選擇 [Spring]→「Spring Project」,然後按下【Next】,出現 [New Spring Project] 對話框內,輸入新增的專案名稱: HRDemo,其它選項照預設即可,按下【Finish】完成,並將 eclipse的視界 (perspective)切至 Java EE。 ![]() 圖 3、新增 Spring Project 的對話框 2. 在 [Project Explorer] 的專案視窗內,將滑鼠移至專案的根目錄 (HRDemo)下,右鍵點選 [Build Path]→[Configure Build Path …],出現 [Properties for HRDemo]的對話框,然後將標籤切換至 [Libraries],並點擊【Add Libraries…】,當出現 [Add Library] 對話框後,選擇 [User Library] 然後點擊 【Next】。 ![]() 圖 4、Add User Library 的對話框 出現 [User Library] 對話框後,點擊 【User Libraries…】,再點擊 【New…】,在 [New User Library] 的對話框內填入自訂的 Library 名稱,在此例填入:「Spring 2.x Framework」 完成後點擊 【OK】。 ![]() 圖 5、填入 User Library 名稱 點擊 【Add JARs】。Spring-based 的專案,至少必須載入三個相關的 jar: spring.jar, commons-logging.jar, log4j-1.2.14.jar。此三個檔案位於在上述所解壓縮 Spring Framework Library (此例目錄為 C:\java\lib\spring-framework-2.X),路徑內的 /dist, /lib/Jakarta-commons, /lib/log4j 目錄下。 ![]() 圖 6、Spring 專案必要參考的三個 jar 檔 二、撰寫類別控制程式碼 1. 從 [Project Explorer] 專案視窗內,按下滑鼠右鍵,選擇 [New]→[Class],在 [New Java Class] 對話框內,在 「Package」欄位內,填入: hr.demo.hsdc;在「Name」欄位內,填入:員工薪資管理Control。 ![]() 圖 7、新增 Java 類別 (Class)的對話框 2. 在 eclipse 程式碼編輯視窗內,撰寫下列 java 程式碼:
*** 在這個階段重點是建立程式碼框架,而不是在細節的正確性。所以只要宣告好該控制類別所需要的功能 (method)、參數、回傳值即可;至於 method 內實做的細節,在建立起整個開發環境的框架後,再回頭來補充實做細節即可。(這是 Iteration 作法關鍵之所在,知道每一個階段的重點目標為何) 3. 新增第一個 Java Class 程式後,eclipse IDE 的 Java EE視界如下圖所示: ![]() 圖 8、新增第一個 Java Class 後 Java EE 的 Layout 三、新增 Spring Beans 設定檔 (Config File) 1. 從 [Project Explorer] 專案視窗內,按下滑鼠右鍵,選擇 [New]→[Other…],然後在 Wizard 對話框內,選擇 [Spring]→[Spring Bean Definition] ,然後點擊 [Next]。 ![]() 圖 9、選擇新增 Spring Bean XML 設定檔 在出現的對話框內的 [File Name] 填入自訂的設定檔名稱 (在本例中為 beans-config),並選擇該檔案儲放的位置在 src 目錄下。 ![]() 圖 10、填入 Spring設定檔名稱與儲放位置 點擊 [Next],在出現選擇 XSD namespace的對方框內,點選 [bean] 後,在下方的對話框,改選 XSD 定義為符合 Spring 2.0 (spring-beans-2.0.xsd),然後點擊 [Finish] 完成。 ![]() 圖 11、改選符合 spring 2.0 規格的 XSD 定義 此時在 [Project Explorer] 專案視窗 src 目錄下,即會新增一個 beans-config 檔。在程式碼編輯視窗下編輯該設定檔內容為:
![]() 圖 12、新增 java spring 設定檔後 Java EE 的 Layout 2. 值得留心的是,若程式碼有用到中文名稱 (如中文類別名稱),那就必須變更 eclipse 預設的編碼,否則在設定檔內有中文名稱的話,會出現 "Invalid byte 1 of 1-byte UTF-8 sequence" 的錯誤訊息。在 eclipse 的功能表 [Project]→[Properties],點選 [Resources],在右邊的「Text file encoding」,把原來是系統預設的編碼,改為 「UTF-8」。 ![]() 圖 13、改為 UTF-8 編碼,以避免中文問題 四、撰寫控制類別的測試程式碼 在 eclipse 環境下要撰寫測試程式碼是非常簡單的一件事。原因是 eclipse 已內建了 JUnit 測試框架 (JUint Test Framework),作為一位程式撰寫人員,最起碼要為每一個控制性的功能(服務)性類別撰寫功能測試程式碼 (functional test code),可以說是軟體品質的最基本保障,也是應該要具備的責任與良心了。 1. 在 [Project Explorer] 內,選擇 {員工薪資管理Control.java},按下滑鼠右鍵,選擇 [New]→[Other…],然後在 Wizard 對話框內,選擇 [JUnit]→[JUnit Test Case] ,然後點擊 [Next]。在出現的對話框內,填入以下資訊: * 點選 「New JUnit 4 Test」。 (新版本的測試框架可以根據 Java 5.0 以上版本的新特徵特性來建構;更簡單、易於使用,以及更敏捷的初始化與清理等工作) * Package: hr.demo.hsdc.test (端看 Developer 的習慣,這裡是採用將測試程式碼均放置於原始程式碼所在位置的子目錄下) * Name:員工薪資管理ControlTest (測試類別命名的建議為 原類別名稱+Test) * 勾選 setUp() method (讓測試類別可進行初始化的工作) ![]() 圖 14、新增 JUnit 測試程式碼的對話框 點擊 【Next】,在出現「選擇測試的 method」對話框時,點選該控制類別所宣告的 method (此例為「計算員工薪資()」、」計算所有員工薪資()」。 一般而言,功能測試的重心會在於測試功能性類別所揭露出的企業邏輯(business logic),這些企業邏輯的演算核心均會被封裝 (encapsulate)在功能性類別所宣告的 method 內。 ![]() 圖 15、選擇要測試的 method 2. 編輯測試程式碼內容
3. 執行測試。 在 eclipse 的工具列 (toolbar)中,選擇 [RUN] (綠色右箭頭符號圖示),在此例中點選「員工薪資管理ControlTest」後,在下方的 [JUnit] 標籤即可顯示測試的結果。 (綠棒代表通過;若有至少一個錯誤,則會出現紅棒) ![]() 圖 16、執行 JUnit 測試 *** 至此已完成第一階段子目標 *** 整個專案目錄備份至 /Stage-1 目錄下。 ※延伸參考 o 原文出處與程式碼下載。 o Java Spring 簡單範例操作與學習指引〈1〉。 ![]() ![]() =$∼寸心千里∼$= = blog: http://www.kenming.idv.tw/ = 軟體課程訊息 http://www.hsdc.com.tw/ |
» JWorld@TW » Java Application Framework » Spring |
![]() ![]() ![]() ![]() |
![]() ![]() ![]() |