我有这个服务/控制器方法:
public ResponseEntity<PolicyDTO> addPolicy(@Valid @RequestBody PolicyDTO policy)
throws InternalServerException, BadRequestException {
log.debug("Adding a new policy");
}
Run Code Online (Sandbox Code Playgroud)
注意方法参数中的@Valid批注
对于此控制器,我们定义了以下方面类:
@Aspect
@Component
public class BackwardsCompatibilityHandler {
@Around("execution(* com.company.PolicyController.addPolicy(..))")
public Object ControllerMethod(JoinPoint jp)
{
// DO Code before and after the method call
}
Run Code Online (Sandbox Code Playgroud)
这方面/代理背后的主要原因是拦截方法调用,并对输入参数/返回的结果进行一些前/后处理。
我们现在面临的主要问题是@Valid批注在实际执行代码之前和之后的方面之前进行处理。
关于如何使验证检查在AOP代码中运行的任何想法?我知道有一种方法可以通过手动调用方法内部的验证器来做到这一点,但是我不想过多地触摸现有代码...因此,除此以外,还有其他任何想法...
现在执行的顺序是:
我们希望有更多类似的东西(首先是我们的代码,然后是Valid注释):
请跳过编译器错误等,该代码仅用于演示目的,不是真正的代码:)