Как заставить мои аспекты Spring выполняться до @ Valid / @ Validated аннотации в методе контроллера пружины?

У меня есть этот сервис / метод контроллера:

public ResponseEntity<PolicyDTO> addPolicy(@Valid @RequestBody PolicyDTO policy)
        throws InternalServerException, BadRequestException {
    log.debug("Adding a new policy");
}

Обратите внимание на аннотацию @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
}

Основная причина этого аспекта / прокси состоит в том, чтобы перехватывать вызовы методов и выполнять некоторую предварительную / последующую обработку входных параметров / возвращаемых результатов.

Основная проблема, с которой мы сталкиваемся сейчас, заключается в том, что@Valid аннотация обрабатывается до фактического выполнения кода до и после кода.

Любая идея о том, как мы можем сделать проверку проверки внутри нашего кода AOP? Я знаю, что есть способ сделать это, вручную вызывая валидатор внутри метода, но я не хотел бы слишком трогать существующий код ... так что любые идеи, кроме этой, если есть ...

Прямо сейчас порядок исполнения такой:

Проверка правильности - запускается аннотацией @ValidСобственный код - аспект - перед вызовом методаАктуальный вызов методаСобственный код - аспект - после вызова метода

И мы хотели бы иметь что-то более похожее (сначала наш код, а затем аннотацию Valid):

Собственный код - аспект - перед вызовом методаПроверка правильности - запускается аннотацией @ValidАктуальный вызов методаСобственный код - аспект - после вызова метода

Пожалуйста, пропустите ошибки компилятора или что-то подобное, этот код только для демонстрационных целей, это не настоящий код :)

Ответы на вопрос(0)

Ваш ответ на вопрос