1. 程式人生 > >4. 使用XML來配置Spring對物件的管理

4. 使用XML來配置Spring對物件的管理

 

之前我們看了如何使用註解配置spring的功能,那麼現在我們再看一下如何使用xml配置spring。

 

為了方便展示,筆者再新建一個專案,過程就不贅述。

 

 

新專案建好後,我們在main的java目錄下,和之前一樣,建一個名為hello的包

 

然後把之前的這三個class都copy過來

 

回到spring02專案,因為我們不再使用註解的方式去配置bean了,所以我們把這些註解全都刪掉

 

 

把這幾個註解刪掉後,我們把各個類的包都整理一下,滑鼠點中Import這行後,Alt + Enter,再選Optimize imports即可。

 

把MessagePrinter和MessageService的引入都刪掉,ApplicationSpring會自動留下兩個我們待會要用到的。

 

 

像spring01一樣,把spring的核心包通過pom.xml匯入進去,這個沒什麼技術含量的,從spring01複製過來就可以了。

 

點選右下角的 Import Changes儲存引入。

 

引入成功後,我們回到自己的專案結構。看到這裡有個資料夾叫resources,這個資料夾是maven專案放置基本配置的地方。

 

 我們在這個資料夾下面新建一個xml檔案。

 依舊是快捷鍵Alt + insert鍵,選擇SpringConfig

 

檔名就叫applicationContext

 

 

建立好了之後發現裡面有幾行程式碼,也不知道是什麼意思,怎麼辦呢?

 

我們先不去管它,反正不要動就對了。

 

我們在<beans>標籤下新加入一個<bean>標籤,這樣一來這個bean所指向的class就能直接被spring所管理,我們稱之為bean類。

<bean id="service" class="hello.MessageService"></bean>  

 

同樣的,我們把MessagePrinter也加入到bean中去

<bean id="printer" class="hello.MessagePrinter"></bean>

 

這個時候,我們需要把這兩個物件給關聯起來,因為printer是包含service的。

我們就在printer的bean標籤里加入這樣一行xml

<property name="messageService" ref="service">

</property>

 

這行xml的意思是,把service和printer之間建立起聯絡。

其中property的意思是屬性

name則對應Printer類中成員變數的命名

 

ref則對應service對應的bean的id

 

很難理解嗎?我們畫個圖來理一下邏輯

 

這樣,它們之間的關係就被繫結起來了。

 

回到ApplicationSpring類,我們刪掉一些沒有用的程式碼,留下以下幾行就行。

 

 

我們把這行程式碼改一下,被紅框框住的這行程式碼意思是“註解形式的配置應用程式的上下文”,而我們現在沒有用註解,我們用的是XML,所以需要改一下

 

改成這樣

 

 

ApplicationContext context = new
ClassPathXmlApplicationContext("applicationContext.xml");

這個建構函式裡,我們需要傳入一個引數。這個傳入的引數表示著剛才我們建立的xml的檔名,因為我們建立的檔名就在resources的根目錄下,所以它能自動找到。

 

這個時候,我們的程式碼就編寫完成了,Alt + Shift + F10跑一下~

 

 

也就是說,我們也能通過XML的方式來實現Spring對物件的管理。