Spring中的Aware介面

2021-08-04 12:42:01 字數 985 閱讀 8933

spring中提供了一些以aware結尾的介面,實現了aware介面的bean在被初始化後,可以獲取相應資源。通過aware介面,可以對spring相應資源進行操作(一定要慎重,因為可能修改spring核心類)。

aware有以下介面:

介面作用

beannameaware

在bean中得到它在ioc容器中的bean的例項的名字

beanfactoryaware

在bean中得到bean所在的ioc容器,從而直接在bean中使用ioc容器的服務

在bean中得到bean所在的應用上下文,從而直接在bean中使用上下文的服務

messagesourceaware

在bean中得到訊息源

在bean中得到應用上下文的事件發布器,從而可以在bean中發布應用上下文的事件

resourceloaderaware

在bean中得到resourceloader,從而在bean中使用resourceloader載入外部對應的resource資源

以beannameaware介面為例進行演示:

實現beannameaware介面:

public

class

awaretest

implements

beannameaware

public

void

run()

}

配置xml檔案:

class="com.spring.test.awaretest"/>

測試類:

public

public

static

void

main(string args)

}

執行時,重寫的介面中的setbeanname(string name)方法在bean被裝配時會自動呼叫,bean就可以獲取到它自己的名字。

Spring中Aware系列介面

一 ioc容器管理bean,bean在ioc容器中。那麼bean知不知道自己在ioc容器中的代號 id 呢?bean知不知道自己在哪個ioc容器中?能否通過bean獲取它的ioc容器物件呢?簡單來說就是 bean是否對spring有知覺 答 單純的bean 未實現aware系列介面 是沒有知覺的 實...

Spring中Aware介面的使用

第一步 配置xml,並實現要繼承的2個類和測試類 xml xmlns xsi schemalocation package com.imooc.aware 繼承beannameaware的類 package com.imooc.aware import org.springframework.bea...

Spring中的Aware介紹

如果需要獲取到spring中容器或者其他spring中資源的時候,我們就需要實現aware一系列的介面,這樣才能獲取到。spring中常用的aware介面 beannameaware 獲得到容器中bean的名稱 beanfactoryaware 獲得當前bean factory,從而呼叫容器的服務 ...