27
Spring 入門 Spring Application framework Spring Spring Spring Spring Spring IoC 1 Business Eclipse Integrated Development Environment, IDE Spring Eclipse Spring IDE Spring IDE 2

Spring 2.0 技術手冊第二章 - Spring 入門

Embed Size (px)

Citation preview

Page 1: Spring 2.0 技術手冊第二章 - Spring 入門

Spring入門

Spring 是個全方位的應用程式框架(Application framework),要瞭解所有 Spring 的功能需要相當的時間,不過要完成第一個 Spring程式卻是相當簡單的,在這個章節中,將實際完成第一個 Spring 程式,以增強您對使用 Spring 的信心,並使用 Spring 的 IoC 容器功能,管理第 1 章所介紹的 Business 物件之依賴關係。 在 本 書 中 將 使 用 Eclipse 作 為 整 合 開 發 環 境 ( Integrated

Development Environment, IDE),這是多數使用 Spring 開發程式的設計人員之選擇,而這個章節中也將介紹如何在 Eclipse 中安裝Spring IDE,並認識 Spring IDE 的一些基本功能。

2

Page 2: Spring 2.0 技術手冊第二章 - Spring 入門

Spring 2.0 技術手冊(林信良 – http://openhome.cc)

2�2

2.1 第一個 Spring程式 作為一個應用程式框架,入門第一個 Spring程式是很簡單的,這一個小節中將進行 Spring的相關檔案下載,使用 Eclipse進行設定、撰寫、執行,完成第一個 Spring程式。

2.1.1 下載、設定 Spring 撰寫此書的時候,Spring最新的版本是 2.0,請連接至 Spring的官方網站進行檔案的下載,網址是在 http://springframework.org/:

圖 2.1 Spring 官方網址 點選左邊的「Downloads」鏈結,可以進入至下載頁面,下載頁面 Spring

Framework 2.0 中會有個「 Download」鏈結連接至 Sourceforge

Page 3: Spring 2.0 技術手冊第二章 - Spring 入門

Chapter 2 Spring 入門

2�3

( http://sourceforge.net/project/showfiles.php?group_id=73357&package

_id=173644&release_id=452461):

圖 2.2 從 Sourceforge 下載 Spring 相關檔案

Spring在 Sourceforge上提供有兩個下載檔案,一個是 spring-framework-

2.0-with-dependencies.zip , 一 個 是 spring-framework-2.0.zip 。with-dependencies的下載檔案包括了一些 ant、jakarta-commons、struts、velocity等其它開放原始碼 Java專案的相依 library檔案,如果您也需要這些相關檔案,可以下載這個版本,如此就不用再分別至各個專屬網站下載這些檔案,如果已經有這些相關檔案,則只需要下載 spring-framework-2.0.zip這個檔案。 建議您直接下載 spring-framework-2.0-with-dependencies.zip,選擇檔案的下載鏈結之後,會需要選擇鏡射(mirror)網站,可以選擇一個最接近您下載所在區域的鏡射網站,下載時會比較快一些。

Page 4: Spring 2.0 技術手冊第二章 - Spring 入門

Spring 2.0 技術手冊(林信良 – http://openhome.cc)

2�4

下載 zip檔案並解壓縮之後,在 dist目錄下就是使用 Spring時所需要的相關檔案,如果下載的是 with-dependencies版本,則在 lib目錄中的是可能會用到的相依檔案,如果需要查詢 Spring的 API文件,或者需要閱讀Spring參考文件,則可以 docs目錄中找到相關文件。

圖 2.3 spring-framework-2.0-with-dependencies 的內容 在 dist目錄下,spring.jar 包括了所有 Spring支援的功能所需要的類別。如果需要的只是 Spring 核心,則可以在 dist/modules 目錄下找到spring-core.jar,如果日後需要用到 Spring其它的子框架支援,再將其它的jar檔案加入至 Classpath的設定即可,例如 spring-aop.jar、spring-webmvc.jar等。通常直接使用 spring.jar這個檔案,好處是不需要加入個別的 jar檔案。 為了統一操作的環境,這邊假設您的 spring 相關檔案都是放在

C:\workspace\library\spring-framework-2.0,可參考圖 2.3 的內容。另外所使用的 JDK 是 5.0,所使用的整合開發環境是Eclipse 3.2,可以在 Eclipse官方網站 http://www.eclipse.org/ 進

Page 5: Spring 2.0 技術手冊第二章 - Spring 入門

Chapter 2 Spring 入門

2��

行下載。使用 Eclipse 的原因是可以接觸到撰寫 Spring 時所要注意的一些細節,當然,許多開發人員選擇 Eclipse 來開發 Spring應用程式也是原因之一。

2.1.2 準備 Spring 設計環境(使用 Eclipse) 在使用應用程式框架撰寫程式時,最好是搭配使用整合開發環境(Integrated Development Environment, IDE)以方便進行各種資源(如Classpath)的管理,這邊假設您已經下載了 Eclipse 3.2。請執行 Eclipse之後先進行專案的新增,執行 Eclipse 選單上的「File/New/Project...」項目之後,在「New Project」對話方塊中選擇「Java Project」,按下「Next」按鈕,並為您的專案取名稱,這邊假設是 SpringDemo 名稱,而專案是儲存在 C:\workspace目錄下,如下圖所示:

Page 6: Spring 2.0 技術手冊第二章 - Spring 入門

Spring 2.0 技術手冊(林信良 – http://openhome.cc)

2�6

圖 2.4 在 Eclipse 中新建 SpringDemo 專案

Page 7: Spring 2.0 技術手冊第二章 - Spring 入門

Chapter 2 Spring 入門

2�7

在這邊建議將.java 原始程式碼跟編譯好的.class 檔案分開放置,這可以在圖 2.4的「Project Layout」設定,選擇「Create separate source and output

folders」,預設.java 會放置在專案的 src 目錄下,而.class 會放置在專案的 bin目錄下。 在專案新建之後,可以在專案上指定的目錄中,直接按滑鼠右鍵新增各種檔案,以後各章節中若提到新建某檔案,都是這樣進行操作,如下圖所示:

圖 2.5 在 Eclipse 中新建檔案的方式

Page 8: Spring 2.0 技術手冊第二章 - Spring 入門

Spring 2.0 技術手冊(林信良 – http://openhome.cc)

2�8

接著,必須將 Spring 相關的 library 加入至專案管理之中(具體而言就是將 .jar檔案設定至 Classpath中),請執行選單上「Project/Properties」項目,選擇「Properties for SpringDemo」對話方塊上的「Java Build Path」,並切換頁面標籤至「Libraries」,如圖 2.6所示:

圖 2.6 設定 library 可以在這個頁面中加入相依的 jar 檔案,例如按下「Add External

JARS...」,即可選擇 .jar檔案的來源,不過為了未來設定 Spring的 library方便起見,您可以在 Eclipse中自訂「User Library」,請按下「Add Library...」按鈕,在接下來的「Add Library」視窗中選擇「User Library」後按下「Next」按鈕,並按下「User Libraries...」按鈕,接著將會顯示圖 2.7 的視窗,在當中按下「New...」按鈕,可以新增 User Library,請在「New User Library」視窗中取名「Spring 2.0 Core」後按下「OK」按鈕:

Page 9: Spring 2.0 技術手冊第二章 - Spring 入門

Chapter 2 Spring 入門

2��

圖 2.7 新增 User Librariy 接 著 可 以 按 下 「 Add JARs... 」 按 鈕 , 將 spring-core.jar 、spring-beans.jar,以及相依的 commons-logging.jar加入,這是稍後示範的第一個 Spring 程式所需的 .jar 檔案,可以在 dist/modules 目錄及lib/jakarta-commons目錄中找到這些檔案,另外若想要使用 Log4j來設定日誌(logging)訊息,則還需要加入 lib/log4j目錄下的 log4j-1.2.14.jar:

圖 2.8 新增 Spring 2.0 Core Library

Page 10: Spring 2.0 技術手冊第二章 - Spring 入門

Spring 2.0 技術手冊(林信良 – http://openhome.cc)

2�1�

完成如圖 2.8的結果後,按下「OK」按鈕即可完成自訂的 User Library之新增,之後若需要加入自訂的 Library,則只要在圖 2.6的「Java Build

Path」中選擇「Add Library...」,並選擇「User Library」即可:

圖 2.9 加入 User Library

2.1.3 撰寫第一個 Spring 程式 來撰寫您的第一個組件(Component),它只是一個簡單的 JavaBean,用來向使用者打聲招呼:

SpringDemo HelloBean.java

package onlyfun.caterpillar;

public class HelloBean {

private String helloWord;

public void setHelloWord(String helloWord) {

this.helloWord = helloWord;

}

public String getHelloWord() {

Page 11: Spring 2.0 技術手冊第二章 - Spring 入門

Chapter 2 Spring 入門

2�11

return helloWord;

}

} 稍後您可以透過 setHelloWord() 這個 Setter來設定新的招呼語(為強調注入的是文字,所以使用 Word),不過並不是親自撰寫程式來作這些事,而是在組態檔案加以定義,由 Spring來為您作設定的動作,接著可以撰寫 Bean的定義檔案,定義檔案會告訴 Spring容器,如何完成相依物件的關係注入等動作,Bean定義檔的檔案名稱可以自由定義,例如這邊取名為 beans-config.xml:

SpringDemo beans-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="helloBean"

class="onlyfun.caterpillar.HelloBean">

<property name="helloWord">

<value>Hello!Justin!</value>

</property>

</bean>

</beans> 在 Bean定義檔中是以 <beans> 作為根節點,而使用 <bean> 來為每一個 Bean進行設定,"id" 屬性用以設定 Bean實例的識別名稱,稍後可以使用"id"所指定的名稱來取得 Bean的實例,"class" 屬性用來指定 Bean的類別名稱, <property> 標籤的 "helloWord" 設定了 Setter 的名 稱(setHelloWord),並在 <value> 標籤上設定了將注入的字串值。

Page 12: Spring 2.0 技術手冊第二章 - Spring 入門

Spring 2.0 技術手冊(林信良 – http://openhome.cc)

2�12

接著來撰寫一個簡單的示範程式:

SpringDemo SpringDemo.java

package onlyfun.caterpillar;

import org.springframework.core.io.ClassPathResource;

import org.springframework.core.io.Resource;

import org.springframework.beans.factory.BeanFactory;

import org.springframework.beans.factory.xml.XmlBeanFactory;

public class SpringDemo {

public static void main(String[] args) {

Resource rs =

new ClassPathResource("beans-config.xml");

BeanFactory factory = new XmlBeanFactory(rs);

HelloBean hello =

(HelloBean) factory.getBean("helloBean");

System.out.println(hello.getHelloWord());

}

}

org.springframework.core.io.ClassPathResource 類別實作了 org.spring-

framework.core.io.Resource介面,可從 Classpath下讀取指定的 Bean定義檔,如果要指定 Bean 定義檔的絕對路徑或相對路徑位置,則可以使用org.springframework.core.io.FileSystemResource。 由於這邊使用的是 XML定義檔,所以使用 org.springframework.beans.

factory.xml.XmlBeanFactory類別,XmlBeanFactory實作了 org.springframe-

work.beans.factory.xml.BeanFactory 介面,用來讀取定義並建立BeanFactory實例,BeanFactory具體來說,就是 Spring所提供的 IoC容器。 就如同第 1 章中所實作的 BusinessFactory 類別之功能,Spring 的BeanFactory是 Factory模式的一個實作例子,但更具備通用特性,可以建立、

Page 13: Spring 2.0 技術手冊第二章 - Spring 入門

Chapter 2 Spring 入門

2�13

管理不同型態的物件。要注意的是,在 Spring 1.2之後,XmlBeanFactory只接受實作 Resource介面的物件,像是 ClassPathResource、FileSystemResource、InputStreamResource、ServletContextResource、UrlResource等。 這是從比較低層次的角度來使用 Spring 的 IoC 容器功能,藉由BeanFactory 來讀取組態檔案,並完成依賴的關係注入,這邊的依賴是什麼?指的是 HelloBean的實例相依於 String物件,透過 Setter所保留的介面,使用 Setter injection 來完成這個依賴注入,而不是將招呼語寫死在HelloBean中。

BeanFactory 讀取 Bean 的組態設定並完成關係維護之後,可以藉由getBean()方法並指定 Bean 的名稱來取得 Bean 實例。如果使用BeanFactory的話,只有在真正需要 Bean物件時,才會實際建立 Bean實例,而不是在一開始建立 BeanFactory時就建立 Bean實例。

Spring 預設會在主控台下顯示許多日誌訊息,為了方便觀看執行程式的結果,可以設定日誌訊息的顯示層級,因此可以在專案的 Classpath 下建立 log4j.properties檔案,內容如下所示:

SpringDemo log4j.properties

log4j.rootLogger=WARN, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n 在這個檔案中,日誌的顯示層級設定只有警示(WARN)訊息,才會顯示在標準輸出(stdout)之中。在 Eclipse中,以上所撰寫的各檔案之相對位置如下圖所示:

Page 14: Spring 2.0 技術手冊第二章 - Spring 入門

Spring 2.0 技術手冊(林信良 – http://openhome.cc)

2�14

圖 2.10 第一個 Spring 程式 可以在開啟 SpringDemo.java檔案後,執行選單上的「Run/Run As/Java

Application」來看看實際運行之後的結果:

圖 2.11 第一個 Spring 程式執行結果 如果今天想要改變招呼語,則只要更改 beans-config.xml 中"helloWord"屬性中的設定就可以了,不用修改 HelloBean.java,從通用的角度來看,就意味著,如果想要改變一些物件之間的依賴關係,只要修改組態檔案即可,而不用修改組件的任何一行程式碼。 可以在光碟的 examples 目錄下找到相對應的 SpringDemo 專案,可以將之複製至 workspace 目錄,解除唯讀屬性,然後在開啟 Eclipse 專案時,專案名稱取與 SpringDemo 相同的名稱,

Eclipse 會自動判斷專案的檔案結構完成專案設定。

Page 15: Spring 2.0 技術手冊第二章 - Spring 入門

Chapter 2 Spring 入門

2�1�

2.1.4 撰寫第二個 Spring 程式 先前所撰寫的第一個 Spring程式是很簡單的程式,主要目的是讓您了解,完成一個簡單的 Spring程式所需的步驟。接下來回顧一下第 1章所示範的 Business 程式,當時是自行撰寫一個 BusinessFactory 類別,負責讀取定義檔、生成物件並完成依賴關係,在這邊可以改用 Spring所提供的功能,以 BeanFactory取代 BusinessFactory。 為了完整呈現專案內容,在這邊將所需的相關檔案一併列出,首先程式依賴於抽象的 IDeviceWriter介面:

SpringDemo2 IDeviceWriter.java

package onlyfun.caterpillar;

public interface IDeviceWriter {

public void saveToDevice();

} 有個 FloppyWriter實現了 IDeviceWriter介面,如下所示:

SpringDemo2 FloppyWriter.java

package onlyfun.caterpillar;

public class FloppyWriter implements IDeviceWriter {

public void saveToDevice() {

System.out.println("儲存至軟碟機…");

}

} 假設 Business 類別有個儲存資料的需求,它依賴於抽象的IDeviceWriter 介面,實際上儲存資料的行為,依賴於 IDeviceWriter 的實作物件,Business類別實作如下:

Page 16: Spring 2.0 技術手冊第二章 - Spring 入門

Spring 2.0 技術手冊(林信良 – http://openhome.cc)

2�16

SpringDemo2 Business.java

package onlyfun.caterpillar;

public class Business {

private IDeviceWriter writer;

public void setDeviceWriter(IDeviceWriter writer) {

this.writer = writer;

}

public IDeviceWriter getDeviceWriter() {

return writer;

}

public void save() {

if(writer == null) {

throw new RuntimeException("DeviceWriter needed...");

}

writer.saveToDevice();

}

} 在第 1 章是自行撰寫一個 BusinessFactory 類別,並設定一個config.properties 進行類別資訊的相關設定,現在可以直接使用 Spring 所提供的 IoC容器功能,可以設定 Bean定義檔如下所示:

SpringDemo2 beans-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="writer" class="onlyfun.caterpillar.FloppyWriter"/>

<bean id="business"

class="onlyfun.caterpillar.Business">

<property name="deviceWriter">

<ref bean="writer"/>

Page 17: Spring 2.0 技術手冊第二章 - Spring 入門

Chapter 2 Spring 入門

2�17

</property>

</bean>

</beans> 在定義檔中設定了兩個 Bean的資訊,由於程式只需產生 FloppyWriter實例,而不用設定任何的依賴關係給它,所以直接使用<bean>標籤設定一個"id"為 writer的 Bean實例,並將之設定給 Business的實例參考。要參考IoC容器中已設定的 Bean實例,可以使用<ref>標籤,並指定其"bean"屬性為所依賴的 Bean實例之"id"名稱,如此 IoC容器會自動建立兩個物件之間的依賴關係。 您還可以建立 log4j.properties檔案,內容與前一個專案相同即可,之後的範例將不再重複說明 log4j.properties的設定。最後,請建立一個示範程式如下:

SpringDemo2 SpringDemo.java

package onlyfun.caterpillar;

import org.springframework.core.io.ClassPathResource;

import org.springframework.core.io.Resource;

import org.springframework.beans.factory.BeanFactory;

import org.springframework.beans.factory.xml.XmlBeanFactory;

public class SpringDemo {

public static void main(String[] args) {

Resource rs =

new ClassPathResource("beans-config.xml");

BeanFactory factory = new XmlBeanFactory(rs);

Business business =

(Business) factory.getBean("business");

business.save();

}

}

Page 18: Spring 2.0 技術手冊第二章 - Spring 入門

Spring 2.0 技術手冊(林信良 – http://openhome.cc)

2�18

程式執行結果的一個參考畫面如下所示:

圖 2.12 第二個 Spring 程式執行結果 假設今天 Business類別不再將資料儲存至軟碟機,而是要儲存至 Usb行動硬碟上,則可以讓一個 UsbDiskWriter類別實作 IDeviceWriter介面,並 在 Bean 定 義 檔 中 修 改 "writer" 這 個 Bean 的 "class" 屬 性 為UsbDiskWriter 類別,如此重新執行程式,Business 類別底層所依賴的儲存行為,就會替換為 UsbDiskWriter所定義的儲存行為,而不用對 Business作出任何的修改。

2.1.5 Spring 2.0 的 XML 設定 如果您曾經使用過 Spring 1.2或之前的版本,也許已經發現到,在這邊所示範的 XML定義檔中,XML設定語法是基於 XML Schema:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

...

</beans> 如果想要使用 Spring 2.0 所提供的一些新功能與 XML 標籤設定,建議採用基於 XML Schema的設定方式,Spring開發團隊也建議採用 XML

Schema,結合 Spring 2.0新的標籤設定,可以讓 XML設定檔的內容更簡潔且容易讀取。

Page 19: Spring 2.0 技術手冊第二章 - Spring 入門

Chapter 2 Spring 入門

2�1�

如果不打算或無法採用基於 XML Schema的設定方式,Spring 2.0中也提供基於 DTD的設定方式:

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"

"http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>

...

</beans> 基於 XML Schema的方式是被鼓勵的,例如若想要使用 Spring 2.0新的<util>標籤設定,則只要如下設定:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:util="http://www.springframework.org/schema/util"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd

http://www.springframework.org/schema/util

http://www.springframework.org/schema/util/spring-util-2.0.xsd">

...

</beans> 對於 Spring 2.0所新增的一些標籤設定,在往後適當的章節中,將會分別加以說明。

Page 20: Spring 2.0 技術手冊第二章 - Spring 入門

Spring 2.0 技術手冊(林信良 – http://openhome.cc)

2�2�

2.2 安裝、使用 Spring IDE 不免仍是老話一句:「工欲善其事、必先利其器」。使用 Eclipse 並結合 Spring來開發應用程式是個不錯的組合,但可以更好,可以在 Eclipse中安裝 Spring IDE的 plug-in,讓您在使用 Spring開發應用程式時有更高的效率,這個小節中將來介紹如何安裝與使用 Spring IDE。

2.2.1 安裝 Spring IDE

Spring IDE是 Spring官方網站所推薦的 Eclipse plug-in,可提供在開發 Spring時對 Bean定義檔進行驗證、以可視化的方式觀看 Bean與 Bean之間的依賴關係等功能,在這邊來介紹一下如何於 Eclipse 中安裝 Spring

IDE。 在進行 Spring IDE 的安裝之前,可以一併安裝 Graphical Editing

Framework,因為 Spring IDE使用它作為基礎以顯示 Bean Graph,也就是以圖形化的方式顯示 Bean 與 Bean 之間的依賴關係。首先請執行 Eclipse選單上的「Help/Software updates/Find and Install」,然後選擇「Search for

new features to install」,再按下「Next」按鈕,如下圖所示:

Page 21: Spring 2.0 技術手冊第二章 - Spring 入門

Chapter 2 Spring 入門

2�21

圖 2.13 搜尋可用的 Plug-in 在接下來的「Install」視窗中,按下「New Remote Site...」按鈕,新增 Spring IDE的 Update Site,網址是:http://springide.org/updatesite/:

圖 2.14 新增 Spring IDE 的 Update Site 在新增 Spring IDE的 Update Site之後,請選擇新增的「Spring IDE」項目,且一併選擇「Callisto Discovery Site」,以便安裝 Graphical Editing

Framework,按下「Finish」按鈕後還需要選擇「Update Site Mirrors」,

Page 22: Spring 2.0 技術手冊第二章 - Spring 入門

Spring 2.0 技術手冊(林信良 – http://openhome.cc)

2�22

請選擇「Callisto Discovery Site」後按下「OK」,接著會進行 plug-in的搜尋。在撰寫這個章節時,Graphical Editing Framework的版本為 3.2.1,Spring IDE最新的版本為 1.3.6,請如下圖選擇項目以進行安裝:

圖 2.15 安裝 Graphical Editing Framework 與 Spring IDE 接下來請依安裝精靈的指引,一步一步完成 Graphical Editing

Framework 與 Spring IDE 的下載與安裝,安裝完成後會要求重新啟動Eclipse,重新啟動之後,可以執行選單上的「Help/About Eclipse SDK」指令,並按下「Plug-in Details」來看看 Graphical Editing Framework 與Spring IDE是否安裝完成。

Page 23: Spring 2.0 技術手冊第二章 - Spring 入門

Chapter 2 Spring 入門

2�23

圖 2.16 檢視 Graphical Editing Framework 與 Spring IDE 是否安裝完成

2.2.2 使用 Spring IDE 以先前所開發的 SpringDemo來作示範,要加入 Spring IDE的功能支援,請在 SpringDemo專案上按滑鼠右鍵,執行「Add Spring Project Nature」指令,如下圖所示:

圖 2.17 在專案上加入 Spring IDE 支援

Page 24: Spring 2.0 技術手冊第二章 - Spring 入門

Spring 2.0 技術手冊(林信良 – http://openhome.cc)

2�24

加入 Spring IDE的支援後,專案圖示上會出現一個 S字樣。Spring IDE可以協助檢查 Bean 定義檔的內容是否設定正確,為了擁有這個功能,必須執行選單列上的「Project/Properties」指令,然後選擇「Spring」項目,在「Config Files」頁籤中按「Add...」按鈕,加入要進行驗證管理的 Bean定義檔:

圖 2.18 將 Bean 定義檔納入驗證管理

Spring IDE除了可以驗證 XML檔案中的標籤如 <beans> 等是否設定正確之外,還可以協助驗證所設定的類別名稱是否正確,例如若設定時鍵入了錯誤的類別名稱,則會出現錯誤標示與說明:

Page 25: Spring 2.0 技術手冊第二章 - Spring 入門

Chapter 2 Spring 入門

2�2�

圖 2.19 Spring IDE 可檢驗出 Bean 定義檔上的錯誤設定 可以切換 Eclipse右下方的頁籤至「Spring Beans」(如果沒有出現,請執行選單上「Window/Show View/Other...」,並選擇「Spring/Spring

Beans」),Spring IDE可以在這個頁籤中,以可視化的方式顯示 Bean定義檔中的節點摘要:

圖 2.20 Spring IDE 的 Beans 節點摘要顯示 可以在 Bean定義檔上按滑鼠右鍵執行「Show Graph」指令,Spring IDE會以圖形化的方式,顯示 Bean定義檔中的 Bean定義,以及 Bean與 Bean之間的依賴關係:

Page 26: Spring 2.0 技術手冊第二章 - Spring 入門

Spring 2.0 技術手冊(林信良 – http://openhome.cc)

2�26

圖 2.21 顯示 Bean Graph 以先前所撰寫的 SpringDemo2 專案為例,Spring IDE 將會顯示如圖2.22的 Bean Graph:

圖 2.22 Spring IDE 的可視化 Bean 管理

Page 27: Spring 2.0 技術手冊第二章 - Spring 入門

Chapter 2 Spring 入門

2�27

2.3 接下來的主題 這個小節中示範了兩個簡單的 Spring 程式,讓您了解如何在 Eclipse中開發 Spring應用程式,並也介紹了 Spring IDE的入門使用,入門 Spring是簡單的,但接下來就要一步一步的探索 Spring的每一個功能,首先在下一個章節開始,將接續這個章節的第一個 Spring 程式,深入了解 Spring的 IoC容器之功能與設定方式。

圖 2.23 您的第一個 Spring