Spring中IOC和AOP詳解

2021-08-21 04:25:00 字數 1035 閱讀 5944

我們是在使用spring框架的過程中,其實就是為了使用ioc容器—依賴注入,和aop—面向切面程式設計,這兩個是spring的靈魂。

主要用到的設計模式有工廠模式和**模式。

ioc就是典型的工廠模式,通過sessionfactory去注入例項。

aop就是典型的**模式的體現。

在傳統的程式設計中,當呼叫者需要被呼叫者的協助時,通常由呼叫者來建立被呼叫者的例項。但在spring裡建立被呼叫者的工作不再由呼叫者來完成,因此控制反轉(ioc);建立被呼叫者例項的工作通常由spring容器來完成,然後注入呼叫者,因此也被稱為依賴注入(di),依賴注入和控制反轉是同乙個概念。將物件交給容器管理,你只需要在spring配置檔案總配置相應的bean,以及設定相關的屬性,讓spring容器來生成類的例項物件以及管理物件。在spring容器啟動的時候,spring會把你在配置檔案中配置的bean都初始化好,然後在你需要呼叫的時候,就把它已經初始化好的那些bean分配給你需要呼叫這些bean的類(假設這個類名是a),分配的方法就是呼叫a的setter方法來注入,而不需要你在a裡面new這些bean了。

面向切面程式設計(aop)是對物件導向程式設計(oop)的完善,oop將應用程式分解成各個層次的物件,而aop將程式分解成多個切面。spring aop 只實現了方法級別的連線點,在j2ee應用中,aop攔截到方法級別的操作就已經足夠。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概念

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

Spring的IOC和AOP原理

對spring的理解 spring是乙個輕型容器,其核心是bean工廠,用以構造我們所需的model。ioc 依賴注入,又叫控制反轉。利用了工廠模式 ioc中將物件交給容器管理,你只需要在spring配置檔案中配置對應的bean以及相關的屬性即可,讓spring容器來生成類的例項物件以及管理物件,當...