Spring核心IoC和AOP的理解
spring 框架的優(yōu)點是一個輕量級筆記簡單易學(xué)的框架,實際使用中的有點優(yōu)點有哪些呢!
1.降低了組件之間的耦合性 ,實現(xiàn)了軟件各層之間的解耦
2.可以使用容易提供的眾多服務(wù),如事務(wù)管理,消息服務(wù)等
3.容器提供單例模式支持
4.容器提供了AOP技術(shù),利用它很容易實現(xiàn)如權(quán)限攔截,運(yùn)行期監(jiān)控等功能
5.容器提供了眾多的輔助類,能加快應(yīng)用的開發(fā)
6.spring對于主流的應(yīng)用框架提供了集成支持,如hibernate,JPA,Struts等
7.spring屬于低侵入式設(shè)計,代碼的污染極低
8.獨立于各種應(yīng)用服務(wù)器
9.spring的DI機(jī)制降低了業(yè)務(wù)對象替換的復(fù)雜性
10.Spring的高度開放性,并不強(qiáng)制應(yīng)用完全依賴于Spring,開發(fā)者可以自由選擇spring的部分或全部
什么是DI機(jī)制?
依賴注入(Dependecy Injection)和控制反轉(zhuǎn)(Inversion of Control)是同一個概念,具體的講:當(dāng)某個角色
需要另外一個角色協(xié)助的時候,在傳統(tǒng)的程序設(shè)計過程中,通常由調(diào)用者來創(chuàng)建被調(diào)用者的實例。但在spring中
創(chuàng)建被調(diào)用者的工作不再由調(diào)用者來完成,因此稱為控制反轉(zhuǎn)。創(chuàng)建被調(diào)用者的工作由spring來完成,然后注入調(diào)用者
因此也稱為依賴注入。
spring以動態(tài)靈活的方式來管理對象 , 注入的兩種方式,設(shè)置注入和構(gòu)造注入。
設(shè)置注入的優(yōu)點:直觀,自然
構(gòu)造注入的優(yōu)點:可以在構(gòu)造器中決定依賴關(guān)系的順序。
什么是AOP?
面向切面編程(AOP)完善spring的依賴注入(DI),面向切面編程在spring中主要表現(xiàn)為兩個方面
1.面向切面編程提供聲明式事務(wù)管理
2.spring支持用戶自定義的切面
面向切面編程(aop)是對面向?qū)ο缶幊蹋╫op)的補(bǔ)充,
面向?qū)ο缶幊虒⒊绦蚍纸獬筛鱾€層次的對象,面向切面編程將程序運(yùn)行過程分解成各個切面。
AOP從程序運(yùn)行角度考慮程序的結(jié)構(gòu),提取業(yè)務(wù)處理過程的切面,oop是靜態(tài)的抽象,aop是動態(tài)的抽象,
是對應(yīng)用執(zhí)行過程中的步驟進(jìn)行抽象,,從而獲得步驟之間的邏輯劃分。
aop框架具有的兩個特征:
1.各個步驟之間的良好隔離性
2.源代碼無關(guān)性
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
SpringBoot實現(xiàn)WebSocket的示例代碼
這篇文章主要為大家詳細(xì)介紹了SpringBoot實現(xiàn)WebSocket的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11
SpringCloud項目中Feign組件添加請求頭所遇到的坑及解決
這篇文章主要介紹了SpringCloud項目中Feign組件添加請求頭所遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04
Maven工程搭建spring boot+spring mvc+JPA的示例
本篇文章主要介紹了Maven工程搭建spring boot+spring mvc+JPA的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01
Java 設(shè)計模式以虹貓藍(lán)兔的故事講解建造者模式
建造者模式,是一種對象構(gòu)建模式 它可以將復(fù)雜對象的建造過程抽象出來,使這個抽象過程的不同實現(xiàn)方法可以構(gòu)造出不同表現(xiàn)的對象。本文將通過示例講解建造者模式,需要的可以參考一下2022-04-04
Java中的super關(guān)鍵字_動力節(jié)點Java學(xué)院整理
這篇文章主要介紹了Java中的super關(guān)鍵字的相關(guān)知識,需要的朋友參考下2017-04-04
SpringBoot單元測試之?dāng)?shù)據(jù)隔離詳解
我們在寫單元測試時,有一個比較重要的要求是可以重復(fù)運(yùn)行, 那么這樣就會有一個比較麻煩的問題:數(shù)據(jù)污染,所以本文為大家整理了兩個數(shù)據(jù)隔離的方式,希望對大家有所幫助2023-08-08

