Spring AOP取得類別及方法名稱的做法如下。
package com.abc.demo.aop;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class DemoAspect {
@Pointcut("execution(* com.abc.demo.controller..*(..))") // 切入點為com.abc.demo.controller下的所有類別的所有方法
public void pointcut() {
}
@Before("pointcut()")
public void before(JoinPoint joinPoint) {
String className = joinPoint.getTarget().getClass().getName(); // 取得切入點的類別名稱
String methodName = joinPoint.getSignature().getName(); // 取得切入點的方法名稱
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
Parameter[] parameters = signature.getMethod().getParameters(); // 取得方法輸入參數資訊
Object[] args = joinPoint.getArgs(); // 取得輸入參數值
...
}
}
參考:
沒有留言:
張貼留言