[Spring笔记] Spring-34-AOP环绕通知中的Signature
Spring-34-AOP环绕通知中的Signature
ProceedingJoinPoint 中获取 Signature
在 Around 环绕通知中,ProceedingJoinPoint 类作为参数传入,调用此类中的 getSignature() 方法可获得 Signature,Signature 中可以获取到原始方法的信息
原始方法为 com.mzz.service 包下的 AccountService 接口中的 selectAll() 方法,返回类型是 List,示例如下:
@Around("servicePt()")
public void runSpeed(ProceedingJoinPoint pjp) throws Throwable {
// 获取 Signature
Signature signature = pjp.getSignature();
System.out.println(signature.toString());
// 输出:List com.mzz.service.AccountService.selectAll()
System.out.println(signature.toLongString());
// 输出:public abstract java.util.List com.mzz.service.AccountService.selectAll()
System.out.println(signature.toShortString());
// 输出:AccountService.selectAll()
System.out.println(signature.getDeclaringType());
// 输出:interface com.mzz.service.AccountService
System.out.println(signature.getDeclaringTypeName());
// 输出:com.mzz.service.AccountService
System.out.println(signature.getName());
// 输出:selectAll
}
Signature 获取原始方法的信息,可以用于通配符匹配切入点时,区分不同的原始方法
视频链接:
