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
實作beannameaware、resourceloaderaware接口,獲得bean名稱和資源加載的服務
實作resourceloaderaware需重寫setresourceloader方法
實作beannameaware需重寫setbeanname方法
(3)配置類
(4)運作
結果