91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring中的IOC和AOP是什么

發布時間:2022-01-05 14:54:49 來源:億速云 閱讀:200 作者:iii 欄目:大數據

本篇內容主要講解“Spring中的IOC和AOP是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Spring中的IOC和AOP是什么”吧!

我們是在使用Spring框架的過程中,其實就是為了使用IOC,依賴注入和AOP,面向切面編程,這兩個是Spring的靈魂。

主要用到的設計模式有工廠模式和代理模式

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

AOP就是典型的代理模式的體現。

代理模式是常用的java設計模式,他的特征是代理類與委托類有同樣的接口,代理類主要負責為委托類預處理消息、過濾消息、把消息轉發給委托類,以及事后處理消息等。代理類與委托類之間通常會存在關聯關系,一個代理類的對象與一個委托類的對象關聯,代理類的對象本身并不真正實現服務,而是通過調用委托類的對象的相關方法,來提供特定的服務。 

spring的IoC容器是spring的核心,spring AOP是spring框架的重要組成部分。

在傳統的程序設計中,當調用者需要被調用者的協助時,通常由調用者來創建被調用者的實例。但在spring里創建被調用者的工作不再由調用者來完成,因此控制反轉(IoC);創建被調用者實例的工作通常由spring容器來完成,然后注入調用者,因此也被稱為依賴注入(DI),依賴注入和控制反轉是同一個概念。

面向方面編程(AOP)是以另一個角度來考慮程序結構,通過分析程序結構的關注點來完善面向對象編程(OOP)。OOP將應用程序分解成各個層次的對象,而AOP將程序分解成多個切面。spring AOP 只實現了方法級別的連接點,在J2EE應用中,AOP攔截到方法級別的操作就已經足夠。在spring中,未來使IoC方便地使用健壯、靈活的企業服務,需要利用spring AOP實現為IoC和企業服務之間建立聯系。


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 的優點?

1.降低了組件之間的耦合性 ,實現了軟件各層之間的解耦 

2.可以使用容易提供的眾多服務,如事務管理,消息服務等 

3.容器提供單例模式支持 

4.容器提供了AOP技術,利用它很容易實現如權限攔截,運行期監控等功能 

5.容器提供了眾多的輔助類,能加快應用的開發 

6.spring對于主流的應用框架提供了集成支持,如hibernate,JPA,Struts等 

7.spring屬于低侵入式設計,代碼的污染極低 

8.獨立于各種應用服務器 

9.spring的DI機制降低了業務對象替換的復雜性 

10.Spring的高度開放性,并不強制應用完全依賴于Spring,開發者可以自由選擇spring的部分或全部 

什么是DI機制? 

依賴注入(Dependecy Injection)和控制反轉(Inversion of Control)是同一個概念,具體的講:當某個角色 

需要另外一個角色協助的時候,在傳統的程序設計過程中,通常由調用者來創建被調用者的實例。但在spring中 

創建被調用者的工作不再由調用者來完成,因此稱為控制反轉。創建被調用者的工作由spring來完成,然后注入調用者 

因此也稱為依賴注入。 

spring以動態靈活的方式來管理對象 , 注入的兩種方式,設置注入和構造注入。 

設置注入的優點:直觀,自然 

構造注入的優點:可以在構造器中決定依賴關系的順序。 

什么是AOP? 

面向切面編程(AOP)完善spring的依賴注入(DI),面向切面編程在spring中主要表現為兩個方面 

1.面向切面編程提供聲明式事務管理 

2.spring支持用戶自定義的切面 

面向切面編程(aop)是對面向對象編程(oop)的補充:

面向對象編程將程序分解成各個層次的對象,面向切面編程將程序運行過程分解成各個切面。 

AOP從程序運行角度考慮程序的結構,提取業務處理過程的切面,oop是靜態的抽象,aop是動態的抽象, 

是對應用執行過程中的步驟進行抽象,,從而獲得步驟之間的邏輯劃分。 

aop框架具有的兩個特征: 

1.各個步驟之間的良好隔離性 

2.源代碼無關性 

到此,相信大家對“Spring中的IOC和AOP是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

焦作市| 汨罗市| 吉木萨尔县| 密云县| 乡宁县| 阳泉市| 海丰县| 交城县| 绵阳市| 公主岭市| 平塘县| 洪湖市| 鲜城| 通许县| 天津市| 宿松县| 山阳县| 肇源县| 泰宁县| 自治县| 西盟| 额济纳旗| 临沂市| 成武县| 东丰县| 双辽市| 东城区| 东乡族自治县| 黑龙江省| 伊宁市| 丁青县| 桂平市| 胶州市| 鹿泉市| 秭归县| 磐安县| 青铜峡市| 荆门市| 福海县| 虎林市| 远安县|