JoIntPoint常用方法

在常見的切面中,常用的參數有:JointPoint和ProceedingJoinPoint,其中ProceedingJoinPoint繼承JointPoint,ProceedingJoinPoint用在@Arround註解的方法參數裏,下面分開談

1.JointPoint的常用方法


public void invoke(JoinPoint joinPoint) throws Throwable{
 
//攔截的實體類
 
Object target = joinPoint.getTarget();
 
//攔截的方法名稱
 
String methodName = joinPoint.getSignature().getName();
 
//攔截的方法參數
 
Object[] argsa = joinPoint.getArgs();
 
//攔截的放參數類型
 
Class[] parameterTypes = ((MethodSignature)joinPoint.getSignature()).getMethod().getParameterTypes();
 
Method method = target.getClass().getMethod(methodName, parameterTypes);
 
Login login = method.getAnnotation(Login.class);
 

2. ProceedingJoinPoint的常用方法

用在環繞通知,也就是註解@Arround的方法參數裏,ProceedingJoinPoin有一個proceed方法:

ProceedingJoinPoint繼承JoinPoint子接口,它新增了兩個用於執行連接點方法的方法: 
   java.lang.Object proceed() throws java.lang.Throwable:通過反射執行目標對象的連接點處的方法; 
   java.lang.Object proceed(java.lang.Object[] args) throws java.lang.Throwable:通過反射執行目標對象連接點處的方法,不過使用新的入參替換原來的入參。 

說人話就是,讓目標方法執行

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章