使用Java生成AOP注解代,能够获取到方法的参数实体
时间: 2023-05-16 19:04:58 浏览: 116
可以使用反射获取方法的参数实体,然后在注解中使用该参数实体进行操作。以下是一个简单的示例代码:
```java
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AopAnnotation {
String value() default "";
}
@Aspect
@Component
public class AopAspect {
@Around("@annotation(aopAnnotation)")
public Object around(ProceedingJoinPoint joinPoint, AopAnnotation aopAnnotation) throws Throwable {
Object[] args = joinPoint.getArgs();
// 获取方法参数实体
Object paramEntity = args[0];
// 在注解中使用参数实体进行操作
String value = aopAnnotation.value();
// ...
return joinPoint.proceed();
}
}
@Service
public class AopService {
@AopAnnotation("test")
public void test(UserEntity userEntity) {
// ...
}
}
```
在上述代码中,我们定义了一个 AopAnnotation 注解,并在 AopAspect 类中使用 @Around 注解来拦截被 AopAnnotation 注解标记的方法。在拦截方法中,我们使用反射获取方法的参数实体,并在注解中使用该参数实体进行操作。最后,我们使用 joinPoint.proceed() 方法来执行原始方法。
阅读全文