@AopAnn(“system:dept:list”)自定义注解上的参数ProceedingJoinPoint joinPoint能获取到么
时间: 2024-12-16 08:31:37 浏览: 7
在Spring AOP (Aspect Oriented Programming) 中,`@AopAnn("system:dept:list")`这样的自定义注解用于指定切点(Pointcut),其中的`joinPoint`属性通常是指向`ProceedingJoinPoint`类型的,它是一个关键对象,包含了当前通知执行的相关信息,如目标方法、方法参数、执行上下文等。
`joinPoint`可以获取到当前处理的通知(advice)所关联的执行过程的各种详细信息,例如:
1. **方法调用**:你可以获取目标方法的名称、方法签名、返回值类型等。
2. **参数**:允许访问方法的参数值。
3. **上下文**:包括运行环境、事务状态等。
4. **动态代理**:可以决定是否继续执行目标方法,或者修改其执行结果。
如果你在编写切面(Aspect)并需要访问这个注解的`joinPoint`,可以通过`JoinPoint`接口的方法来获取这些信息。例如:
```java
@Around("@annotation(systemDeptList)")
public Object doSomething(ProceedingJoinPoint joinPoint) {
// 获取方法名
String methodName = joinPoint.getSignature().getName();
try {
// 执行目标方法前的操作...
Object result = joinPoint.proceed(); // 调用目标方法
// ...执行后续操作...
} catch ( Throwable e ) {
// 异常处理...
}
}
```
阅读全文