Spring原始碼 Aware及其子介面

2021-10-06 12:27:55 字數 1229 閱讀 4148

前面說過容器對bean本身的邏輯基本是無侵入的,因此bean一般不需要了解容器的狀態和直接使用容器,但是再某些時候需要在bean中需要獲取到容器的例項來對其操作,這時候就需要再bean中設定對容器的感知了。

這便是aware介面的作用。

可以看到該介面沒有任何方法,只能當作標籤來使用。所以真正發揮作用的使實現了該介面的子介面。

只有乙個方法名字,顧名思義就知道支援實現該介面的bean可以將容器例項作為引數傳遞進來。

其他的aware子介面與此類似。

測試

@controller

("welcomecontroller"

), beannameaware

} @override

public void setbeanname

(string name)

@override

}}

然後測試handlerequest,呼叫啟動類,可以得到。

public static void main

(string[

] args)

welcomecontroller welcomeservice =

getbean

("welcomecontroller");

// welcomeservice.sayhello("強大的spring");

spring原始碼分析 spring原始碼分析

1.spring 執行原理 spring 啟動時讀取應用程式提供的 bean 配置資訊,並在 spring 容器中生成乙份相應的 bean 配置登錄檔,然後根據這張登錄檔例項化 bean,裝配好 bean 之間的依賴關係,為上 層應用提供準備就緒的執行環境。二 spring 原始碼分析 1.1spr...

Spring設計及原始碼分析

最近這幾天在看spring的設計與原始碼,又是把自己折磨的死去活來的。但是這麼經典的東西總是要好好體會吧,畢竟機會不多。寫一點自己的思考和感觸吧 問題1 ioc和di到底有什麼區別?之前一直認為是同乙個東西,就是從不同的角度來看的,所以有了不同的名稱 主要是從李剛的那本書上看到所理解的 但是最近去官...

spring及spring mvc原始碼透徹解析

這幾天一直在研究spring的原始碼,現將研究過程和成果記錄一下,以便以後檢視。一 從spring載入的入口 二 閱讀 spring原始碼深入解析 一書,並結合部落格 spring原始碼分析 bean載入流程概覽 及這篇部落格的後續幾篇,再根蹤spring的原始碼,理解了spring初始化beanf...