1. 程式人生 > 其它 >IOC和AOP

IOC和AOP

我對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更簡單,