spring_AOP
一、AOP
1.動態代理
a.動態代理實現方式:
jdk動態代理 基於接口實現代理
cglib動態代理 基於子類的方式實現代理
javassist動態代理 基於子類的方式實現代理
b.jdk的動態代理
2.SpringAOP
a.切面
將横切關注點模塊化後形成切面.
b.通知
前置通知(@Before): 前置通知: 在方法執行之前執行.
JoinPoint:連接點物件 包含了連接點相關信息:方法名 方法的參數等....
後置通知(@After): 後置通知: 在方法執行後執行,不管方法有没有抛出异常.
後置通知反問不到方法的返回值
返回通知(@AfterReturning): 返回通知: 方法正常執行後,返回結果以後執行的.
返回通知就能訪問到方法的返回值.
異常通知(@AfterThrowing): 異常通知:方法執行過程中拋出異常後執行.
可以指定抛出特定的異常再執行異常通知. 在形参的位置指定異常的類型即可.
環繞通知(@Around):類似於動態代理的整個過程
3.基於註解方式配置AOP
4.基於xml方式配置AOP
5.切面的優先級
a.基於注解的方式,可以使用@Order(值)來指定切面的優先級.值越小優先級越高
b.基於xml的方式,可以使用order属性来指定切面的優先級.
6.重用切入點表達式