天天看點

3.Spring進階話題—1.Spring Aware

1.點睛

spring的依賴注入的最大亮點就是你所有的bean對spring容器的存在是沒有意識的。即你可以将你的容器替換成别的容器,如google guice,這時bean之間的耦合度很低。

但是在實際項目中,你不可避免的要用到spring容器本身的功能資源,這時你的bean必須意識到spring容器的存在,才能調用spring所提供的資源,這就是所謂的spring aware。其實spring aware本來就是spring設計用來架構内部使用的,若使用了spring aware,你的bean将會和spring架構耦合。

spring aware的目的是為了讓bean獲得spring容器的服務。因為applicationcontext接口內建了messagesource接口、applicationeventpublisher接口和resourceloader接口,是以bean繼承applicationcontextaware可以獲得spring容器的所有服務,但原則上我們還是用到什麼接口,就實作什麼接口。

2.示例

(1)準備。在ch3.aware包下建立一個test.text,内容随意,給下面的外部資源加載使用。

(2)spring aware示範bean

3.Spring進階話題—1.Spring Aware

實作beannameaware、resourceloaderaware接口,獲得bean名稱和資源加載的服務

實作resourceloaderaware需重寫setresourceloader方法

實作beannameaware需重寫setbeanname方法

(3)配置類

3.Spring進階話題—1.Spring Aware

(4)運作

3.Spring進階話題—1.Spring Aware

結果

3.Spring進階話題—1.Spring Aware