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
實現BeanNameAware、ResourceLoaderAware接口,獲得Bean名稱和資源加載的服務
實現ResourceLoaderAware需重寫setResourceLoader方法
實現BeanNameAware需重寫setBeanName方法
(3)配置類
(4)運行
結果
最後更新:2017-05-05 15:39:22