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.重用切入點表達式

 

posted @ 2019-03-21 22:37  frank_lai  阅读(112)  评论(0编辑  收藏  举报