Spring--AOP概述

什麼是AOP, 面向切面編程

AOP爲Aspect Oriented Programming的縮寫, 意爲:面向切面編程, 通過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術. AOP是OOP的延續, 是函數式編程的一種衍生範型. 利用AOP可以對業務邏輯的各個部分進行隔離, 從而使得業務邏輯各部分之間的耦合度降低, 提高程序的可重用性, 同時提高了開發的效率. -解耦

傳統開發模型: 縱向的編程.

在這裏插入圖片描述

面向切面編程: 縱橫配合的編程.

在這裏插入圖片描述

在這裏插入圖片描述

AOP的作用及優勢

作用:
在程序運行期間,不修改任何相關源碼對已有方法進行增強。
優勢:
減少重複代碼、提高開發效率、維護方便

AOP的實現方式

使用動態代理模式來實現

什麼是動態代理技術?

Java中的動態代理,就是使用者使用的不是真實的對象,而是使用的一個代理對象,而這個代理對象中包含的就是真實的對象,代理對象就是不改變原有對象的功能方法的基礎之上封裝新的功能

動態代理不是在編譯階段產生的代理對象,而是在JVM運行中動態產生的

SpringAOP使用代理技術兩種 1,Java官方的JDK動態代理技術 2,CGLIB 第三方代理技術