AOP相關概念

1.AOP(面向切面編程)

在軟件業,AOP爲Aspect Oriented Programming的縮寫,意爲:面向切面編程,經過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術.AOP是OOP的延續,在軟件開發中的一個熱點,也是Spring框架中的一個重要內容,是函數式編程的一種衍生泛型.利用AOP對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分的耦合度下降,提升程序的可重用性,同時提升了開發的效率.spring

AOP思想:橫向重複、縱向抽取編程

2.底層實現:

Spring的AOP的底層用到兩種代理機制:框架

JDK的動態動態代理:針對實現了接口的類產生代理函數式編程

Cglib的動態代理:針對沒有實現接口的類產生動態代理,應用的是底層字節碼加強的技術,生成當前類的子類對象.函數

3.AOP的開發的相關術語

Joinpoint(鏈接點):所謂鏈接點是指那些被攔截到的點.在spring中,這些點指的是方法.由於spring只支持方法類型的鏈接點(能夠被切入的點)spa

Pointcut(切入點):所謂切入點是指咱們要對哪些Joinpoint進行攔截的定義(已經被切入的點)代理

Advice(通知/加強):所謂通知是指攔截到Joinpoint以後所要作的事情就是通知.通知分爲前置通知,後置通知,異常通知,最終通知,環繞通知(切面要完成的功能)對象

Introduction(引介):引介是一種特殊的通知在不修改代碼的前提下,Introduction能夠動態地爲類添加一些方法和Field.接口

Aspect(切面):是切入點和通知(引介)的結合開發

Target(目標對象):代理的目標對象

Proxy(代理):一個類被AOP織入加強後,就產生一個結果代理類.

Weaving(織入):是指把加強應用目標對象來建立新的代理對象的過程.spring採用動態代理織入,而Aspect採用編譯器和類裝載織入

相關文章
相關標籤/搜索