Весенняя загрузка дважды вызывает Custom JSR-303 валидатор - PullRequest
0 голосов
/ 03 мая 2020

Я использую Spring Boot 2.2.6-Release, и мой контроллер выглядит следующим образом

@Validated
public interface UserServiceApi {

  ResponseEntity<User> createUser(@PathVariable("orgId") String orgId, @Valid @RequestBody User user);

}

У меня есть контроллер, реализующий интерфейс. Я вижу, что пользовательский ConstraintValidator для пользователя вызывается дважды. Как только я вижу с ConstraintValidationContext

basePath=""

, а другой с

basePath=createUser.user

, я вижу, что у одного из них CGlibProxy перехватывает его. Согласно весенней документации

Функция проверки метода, поддерживаемая Bean Validation 1.1, автоматически включается, пока реализация JSR-303 (например, валидатор Hibernate) находится в пути к классам. Это позволяет аннотировать методы bean-компонентов с помощью ограничений javax.validation по их параметрам и / или по их возвращаемому значению. Целевые классы с такими аннотированными методами необходимо аннотировать с помощью аннотации @Validated на уровне типа, чтобы их методы искали встроенные аннотации ограничений.

Так что я делаю неправильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...