使用JoinPoint獲取被通知方法參數並傳遞給通知方法


  • 提供訪問當前被通知方法的目標對象、代理對象、方法參數等數據
package org.aspectj.lang; import org.aspectj.lang.reflect.SourceLocation; public interface JoinPoint { String toString(); //連接點所在位置的相關信息 String toShortString(); //連接點所在位置的簡短相關信息 String toLongString(); //連接點所在位置的全部相關信息 Object getThis(); //返回AOP代理對象 Object getTarget(); //返回目標對象 Object[] getArgs(); //返回被通知方法參數列表 Signature getSignature(); //返回當前連接點簽名 SourceLocation getSourceLocation();//返回連接點方法所在類文件中的位置 String getKind(); //連接點類型 StaticPart getStaticPart(); //返回連接點靜態部分 } 
  • 用於環繞通知,使用proceed()方法來執行目標方法
public interface ProceedingJoinPoint extends JoinPoint { public Object proceed() throws Throwable; public Object proceed(Object[] args) throws Throwable; } 
  • 訪問連接點的靜態部分,如被通知方法簽名、連接點類型等
public interface StaticPart { Signature getSignature(); //返回當前連接點簽名 String getKind(); //連接點類型 int getId(); //唯一標識 String toString(); //連接點所在位置的相關信息 String toShortString(); //連接點所在位置的簡短相關信息 String toLongString(); //連接點所在位置的全部相關信息 } 

特別說明:JoinPoint 必須是第一個參數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM