很多個方法要加相同的功能,會產生很多的重複**,在靜態**的基礎上sun公司開發出了jdk動態**,cglib第三方開發了動態**,aop屬於封裝了這兩個動態**,在切換之間游刃有餘,簡化了操作**底層,只需要配置一下spring.xml,切入點,通知。
joinpoint:連線點,連線點就是目標方法;
pointcut:切入點,是連線點的集合,就是給你目標的方法定位,相當於找到了你的目標方法,而切入點在aop中不是乙個
adivce:通知,是給目標方法增強的功能。
切面:我們切入點切入的位置,加上通知增強的功能等於我們的切面;切面=切入點+通知。
目標物件:需要增強的物件或者說需要被**的物件;
織入:就是將切面應用到目標物件的過程叫織入
**物件:aop底層的jdk和cglib動態**生成的物件叫**物件。
aop的兩種應用方式
1.使用標籤開發:
這個方法在spring中配置對於沒有理解aop的小白來說有些複雜,只要你理解了我上面說到的七個點,我相信只是單詞的稍微記憶。
我們需要先寫完介面還有實現類,具體給你們展示一下例子
先在建立的aspect的類中寫上前置通知和後置通知的方法。spring中配置,實現介面類的bean,aspect類的bean,切面的配置:
befter:是我們aspect類中配置的前置方法
after:是我們aspect類中配置的後置方法
2.使用註解開發
主要改變的是aspect類中的結構和spring.xml
spring中兩個bean,target目標物件,aspect為切入點,autoproxy自動**,開啟後切入點,標籤中還有轉換動態**型別,,spring預設是jdk動態**,還可以改為cglib動態**;
面向切面Spring學習之使用註解建立切面
1.在spring中使用註解定義切面,我們會用到下面的註解 註解通知 aspect 它標識乙個類是乙個切面 after 它標識的通知方法會在目標方法返回或丟擲異常後呼叫 afterreturning 它標識的通知方法會在目標方法返回後呼叫 afterthrowing 它標識的通知方法會在目標方法丟擲...
Spring基於註解的零配置方式的面向切面程式設計
一 概述 spring在此只是使用了和aspectj一樣的註解,但並沒有使用aspectj的編譯器或者織入器,底層依然使用的是spring aop,依然是在執行時動態生成aop 並不依賴aspectj的編譯器或者織入器。二 例子與注釋 1 定義aspect與 before增強處理 package c...
Spring框架 第6章 以XML方式配置切面
除了使用aspectj註解宣告切面,spring也支援在bean配置檔案中宣告切面。這種宣告是通過aop命名空間中的xml元素完成的。正常情況下,基於註解的宣告要優先於基於xml的宣告。通過aspectj註解,切面可以與aspectj相容,而基於xml的配置則是spring專有的。由於aspectj...