springboot aop获取方法的参数对象
时间: 2024-10-09 08:16:38 浏览: 46
Spring Boot AOP (Aspect Oriented Programming) 中,通过切面编程可以在不改变业务代码的情况下添加横切关注点,比如日志、权限验证等。如果你想要获取方法的参数对象,通常会使用`@Around`注解创建通知,并通过`ProceedingJoinPoint`接口的`getArgs()`方法来访问参数。
```java
@Around("@annotation(log)")
public Object logAround(ProceedingJoinPoint joinPoint, Log log) throws Throwable {
// 获取方法名
String methodName = joinPoint.getSignature().getName();
// 获取参数对象列表
Object[] args = joinPoint.getArgs(); // 这里args就是参数对象
try {
System.out.println("Before method call: " + methodName + ", arguments: " + Arrays.toString(args));
// 执行原方法并返回结果
return joinPoint.proceed();
} catch (Exception e) {
// 异常处理
log.error("An error occurred in " + methodName, e);
throw e;
}
}
```
在这个例子中,`logAround`方法会在目标方法执行前打印出方法名称和参数,然后继续执行原方法。你可以根据需要对参数进行进一步的操作。
阅读全文