Spring Aware 接口

有些時候类早,在 Bean 的初始化中锌唾,需要使用 Spring 框架自身的對象來執(zhí)行一些操作灼伤,比如獲取 ServletContext 的一些參數(shù),獲取 ApplicaitionContext 中的 BeanDefinition 的名字咪鲜,獲取 Bean 在容器中的名字等等狐赡。為了讓 Bean 可以獲取到框架自身的一些對象,Spring 提供了一組以 Aware 為結(jié)尾的接口疟丙。

這些接口均繼承于 org.springframework.beans.factory.Aware 標記接口颖侄,并提供了由 Bean 實現(xiàn)的 set 方法鸟雏,Spring 通過基于 setter 的依賴注入方式,使相應(yīng)的對象可以被 Bean 使用览祖。以下是一些重要的 Aware 接口:

  • ApplicationContextAware:獲得 ApplicationContext 對象孝鹊,可以用來獲取所有 Bean definition 的名字;
  • BeanFactoryAware:獲得 BeanFactory 對象展蒂,可以用來檢測 Bean 的作用域又活;
  • BeanNameAware:獲得 Bean 在配置文件中定義的名字;
  • ResourceLoaderAware:獲得 ResourceLoader 對象锰悼,可以獲得 classpath 中的某個文件柳骄;
  • ServletContextAware:在 MVC 應(yīng)用中,可以獲取 ServletContext 對象箕般,可以讀取 Context 中的參數(shù)耐薯;
  • ServletConfigAware: 在 MVC 應(yīng)用中,可以獲取 ServletConfig 對象丝里,可以讀取 Config 中的參數(shù)曲初。
public class TestService implements   ApplicationContextAware,
        ApplicationEventPublisherAware, BeanClassLoaderAware, BeanFactoryAware,
        BeanNameAware, EnvironmentAware, ImportAware, ResourceLoaderAware{
    
    @Override
    public void setBeanClassLoader(ClassLoader classLoader) {
        System.out.println("執(zhí)行setBeanClassLoader,ClassLoader Name = " + classLoader.getClass().getName());
    }
    @Override
    public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
        System.out.println("執(zhí)行setBeanFactory,setBeanFactory:: giraffe bean singleton=" +  beanFactory.isSingleton("giraffeService"));
    }
    @Override
    public void setBeanName(String s) {
        System.out.println("執(zhí)行setBeanName: Bean Name defined in context="+s);
    }
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        System.out.println("執(zhí)行setApplicationContext:: Bean Definition Names="
                + Arrays.toString(applicationContext.getBeanDefinitionNames()));
    }
    @Override
    public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
        System.out.println("執(zhí)行setApplicationEventPublisher");
    }
    @Override
    public void setEnvironment(Environment environment) {
        System.out.println("執(zhí)行setEnvironment");
    }
    @Override
    public void setResourceLoader(ResourceLoader resourceLoader) {
        Resource resource = resourceLoader.getResource("classpath:spring-beans.xml");
        System.out.println("執(zhí)行setResourceLoader:: Resource File Name="+ resource.getFilename());
    }
    @Override
    public void setImportMetadata(AnnotationMetadata annotationMetadata) {
        System.out.println("執(zhí)行setImportMetadata");
    }

}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市杯聚,隨后出現(xiàn)的幾起案子臼婆,更是在濱河造成了極大的恐慌,老刑警劉巖械媒,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件目锭,死亡現(xiàn)場離奇詭異,居然都是意外死亡纷捞,警方通過查閱死者的電腦和手機痢虹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來主儡,“玉大人奖唯,你說我怎么就攤上這事∶又担” “怎么了丰捷?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長寂汇。 經(jīng)常有香客問我病往,道長,這世上最難降的妖魔是什么骄瓣? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任停巷,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘畔勤。我一直安慰自己蕾各,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布庆揪。 她就那樣靜靜地躺著式曲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缸榛。 梳的紋絲不亂的頭發(fā)上吝羞,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音仔掸,去河邊找鬼脆贵。 笑死,一個胖子當(dāng)著我的面吹牛起暮,可吹牛的內(nèi)容都是我干的卖氨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼负懦,長吁一口氣:“原來是場噩夢啊……” “哼筒捺!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起纸厉,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤系吭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后颗品,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肯尺,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年躯枢,在試婚紗的時候發(fā)現(xiàn)自己被綠了则吟。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡锄蹂,死狀恐怖氓仲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情得糜,我是刑警寧澤敬扛,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站朝抖,受9級特大地震影響啥箭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜治宣,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一捉蚤、第九天 我趴在偏房一處隱蔽的房頂上張望抬驴。 院中可真熱鬧炼七,春花似錦缆巧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至按傅,卻和暖如春捉超,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背唯绍。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工拼岳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人况芒。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓惜纸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绝骚。 傳聞我的和親對象是個殘疾皇子耐版,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容