IOC和AOP
阿新 • • 發佈:2022-03-14
我對IOC和AOP的理解
spring中最重要的兩大核心概念就是IOC和AOP了,這也是面試中框架部分的必問點了
IOC
首先是IOC,到底什麼是IOC呢?IOC(Inversion Of Control)叫做控制反轉。它主要還是一種設計思想,它可以將原本手動建立例項的過程交給 spring 來處理。目的就是簡化開發。因此,IOC還提供了IOC容器來存放這些例項。
IOC的主要實現就是DI依賴注入,Spring幫助了我們生產物件、管理物件、管理物件與物件之間的依賴關係。降低了程式碼的耦合度、方便開發。
其中依賴注入也有幾種方式
1、通過建構函式建立
2、通過set方法建立
3、用p名稱空間
4、使用註解的方式:@Autowired/@Resource
AOP
AOP(Aspect Oriented Programming)稱為面向切面程式設計。
AOP是一種程式設計思想,它可以將那些與業務無關,卻為業務模組所共同呼叫的邏輯(例如事務處理、日誌管理、許可權控制等)封裝起來,減少系統的重複程式碼,降低了模組之間的耦合度,具有可擴充套件性和可維護性
AOP的實現原理是動態代理,分別有兩種:JDK動態代理和CGLIB動態代理
現在實現AOP的方式主要有兩種,一個是Spring AOP,另一個是 AspectJ AOP,其中Spring AOP已經集成了AspectJ,兩者的區別:AspectJ功能更加強大效能更好,但SpringAOP更簡單,