[英]method parameter aspectj is not working spring boot
我已经创建了一个名称为Validation的注释,并在方法参数上进行了注入,并且在调用之前先使用方面来验证对象。 没用
注释代码
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
public @interface Validation {}
Aop代码
@Aspect
@Component
public class ValidatorAOP {
@Before("valditionAnnotation()")
public void validate(final JoinPoint jp) throws Throwable {
Validator object = (Validator) jp.getTarget();
object.validator();
}
@Pointcut("@annotation(Validation)")
public void valditionAnnotation() {
}
}
将注释用作public TrackingId createNewOrder(@Validation Order newOrder)
在具有以@Validation
注释的参数的任何方法之前调用此方法,我认为这是您想要的:
@Before("execution(* *(.., @Validation (*), ..)) && args(.., toVerify)")
public void validate(final JoinPoint joinPoint, final Object toVerify) {
}
如果您不希望使用参数值,则只需删除&& ...
部分和方法参数。
@Before("execution(* *(.., @Validation (*), ..)) && args(.., toVerify)")
| | | | | | | | | | | |
1 2 3 4 5 6 7 8 9 10 11 12
@Validation
注释) Object toVerify
) 如果您的方法带有多个参数,请注意,有些带有注释,有些没有,以及其他组合,请务必小心-不确定它是否会一直有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.