Spring特性 Aware感知特性

2021-08-27 21:44:14 字數 1035 閱讀 7080

aware,即感知,是spring ioc的乙個特性,當實現了對應的aware介面時,beanfactory工廠會在生產bean時給bean注入對應的屬性,即為該bean增強一定功能。

aware類繼承圖如下

從上圖可以看出aware的所有子類介面,以下列出幾個主要子類介面作用。

beanclassloaderaware:給實現該介面的bean注入該類的類載入器。

beanfactoryaware:給實現該介面的bean注入當前beanfactory容器,此時該bean就持有beanfactory容器功能。

beannameaware:給實現該介面的bean注入bean的名稱。

package com.test.aware;

import org.springframework.beans.bean***ception;

import org.springframework.beans.factory.beannameaware;

private string beanname;

throws bean***ception

} public void setbeanname(string name)

public string getbeanname()

}

建立bean.xml檔案,內容如下

<?xml version="1.0" encoding="utf-8"?>

建立junit測試**

/**

* 測試aware感知特性

*/@test

public void testaware()

測試結果如下

源**如附件

Spring高階話題 Aware

一 aware是什麼?spring aware就是一些定義了spring容器本身功能資源的介面 spring提供的aware介面 介面備註 beannameaware 獲得到容器中bean的名稱 beanfactoryaware 獲得當前 bean factory,這樣可以呼叫容器的服務 messa...

Spring中的Aware介面

spring中提供了一些以aware結尾的介面,實現了aware介面的bean在被初始化後,可以獲取相應資源。通過aware介面,可以對spring相應資源進行操作 一定要慎重,因為可能修改spring核心類 aware有以下介面 介面作用 beannameaware 在bean中得到它在ioc容器...

Spring中Aware系列介面

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