ApplicationContextAware使用說明

Jack2k發表於2021-09-09

圖片描述

唯一介面方法作用

設定該物件在其中執行的ApplicationContext
通常這個呼叫將被用來初始化物件
在普通bean屬性的裝配之後但在初始回撥例如InitializingBean#afterPropertiesSet()或一個自定義的初始方法之前呼叫
在連結ResourceLoaderAware#setResourceLoader之後呼叫

在使用spring整合的專案時,有時候需要獲取ApplicationContext中的bean,就需要在spring載入過程中將ApplicationContext注入到工具類當中,在使用時,直接從工具類中獲取對應的bean,這樣就很方便。
有如下的幾種方式:

  1. 直接使用spring的xml配置載入

  2. 在Web應用中,使用Servlet或者Linsener,透過licationContext將ApplicationContext注入

  3. 實現ApplicationContextAware介面;該方法比較方便,推薦使用該方法;

要執行的ApplicationContext希望被通知的任何物件實現的介面。

實現這個介面是有道理的,例如當一個物件需要訪問一個集合的合作bean。
注意,透過bean引用的配置比實現此介面更適合用於bean的查詢目的。

如果物件需要訪問file資源,即要呼叫getResource,想要釋出應用程式事件,或者需要訪問MessageSource,那麼也可以實現此介面。但是,在這種特定情況下,最好是實現更具體的ResourceLoaderAware,ApplicationEventPublisherAware或MessageSourceAware介面

請注意,檔案資源依賴關係也可以以型別為org.springframework.core.io.Resource的bean屬性公開,透過Struts填充,由bean工廠進行自動型別轉換。這樣就不需要實現任何回撥介面,只是為了訪問一個特定的檔案資源。

在程式當中就可以直接從ApplictionContext中獲取對應的bean了。



作者:芥末無疆sss
連結:
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/36/viewspace-2816220/,如需轉載,請註明出處,否則將追究法律責任。

相關文章