spring 中ioc和aop 的原理是什麼

2021-07-22 14:23:41 字數 941 閱讀 1215

ioc(反轉控制):對成員變數的賦值的控制權從**中反轉到配置檔案中。

aop:aspect(切面) oriented(面向) programming(程式設計),面向切面程式設計。

ioc:控制反轉也叫依賴注入。利用了工廠模式

將物件交給容器管理,你只需要在spring配置檔案總配置相應的bean,以及設定相關的屬性,讓spring容器來生成類的例項物件以及管理物件。在spring容器啟動的時候,spring會把你在配置檔案中配置的bean都初始化好,然後在你需要呼叫的時候,就把它已經初始化好的那些bean分配給你需要呼叫這些bean的類(假設這個類名是a),分配的方法就是呼叫a的setter方法來注入,而不需要你在a裡面new這些bean了。

注意:面試的時候,如果有條件,畫圖,這樣更加顯得你懂了

aop:面向切面程式設計。(aspect-oriented programming)

aop可以說是對oop的補充和完善。oop引入封裝、繼承和多型性等概念來建立一種物件層次結構,用以模擬公共行為的乙個集合。當我們需要為分散的物件引入公共行為的時候,oop則顯得無能為力。也就是說,oop允許你定義從上到下的關係,但並不適合定義從左到右的關係。例如日誌功能。日誌**往往水平地散布在所有物件層次中,而與它所散布到的物件的核心功能毫無關係。在oop設計中,它導致了大量**的重複,而不利於各個模組的重用。

將程式中的交叉業務邏輯(比如安全,日誌,事務等),封裝成乙個切面,然後注入到目標物件(具體業務邏輯)中去。

實現aop的技術,主要分為兩大類:一是採用動態**技術,利用擷取訊息的方式,對該訊息進行裝飾,以取代原有物件行為的執行;二是採用靜態織入的方式,引入特定的語法建立「方面」,從而使得編譯器可以在編譯期間織入有關「方面」的**

簡單點解釋,比方說你想在你的biz層所有類中都加上乙個列印『你好』的功能這你經可以用aop思想來做,你先寫個類寫個方法,方法經實現列印『你好』讓後你ioc這個類 ref=「biz.*」讓每個類都注入。

Spring中IOC和AOP學習

spring中最重要的就是ioc和aop ioc也稱控制反轉,其實是和依賴注入的含義是一樣的 通常是以下兩種 1.設值傳入 set注入 一般是在spring配置的xml中書寫 注意一般是設定類的property的name和ref name springaction class com.bless.s...

Spring中IOC和AOP詳解

我們是在使用spring框架的過程中,其實就是為了使用ioc容器 依賴注入,和aop 面向切面程式設計,這兩個是spring的靈魂。主要用到的設計模式有工廠模式和 模式。ioc就是典型的工廠模式,通過sessionfactory去注入例項。aop就是典型的 模式的體現。在傳統的程式設計中,當呼叫者需...

Spring中的IOC和AOP概念

ioc和aop是spring中的兩個核心的概念,下面談談對這兩個概念的理解。所謂依賴,從程式的角度看,就是比如a要呼叫b的方法,那麼a就依賴於b,反正a要用到b,則a依賴於b。所謂倒置,你必須理解如果不倒置,會怎麼著,因為a必須要有b,才可以呼叫b,如果不倒置,意思就是a主動獲取b的例項 b b n...