Как сгенерировать Validate в методе с javax.validation и без аннотации @Validate - PullRequest
1 голос
/ 09 ноября 2019

Я занимаюсь разработкой сервиса на Java и с использованием Spring Framework, который использует javax.validation аннотации в методах, как в этом примере:

public void method(
    @NotNull @Positive Integer val1, 
    @NotNull @PastOrPresent Date startDate, 
    @NotNull @PastOrPresent Date endDate);

Когда я пишу аннотацию @Проверено в классе, все работает нормально, однако у меня есть некоторые проблемы с циклическими зависимостями в некоторых классах StackOverFlow , а аннотация @Validated создает UnsatisfiedDependencyException ошибки. (Я не смогу перейти на @Lazy, но, несмотря на это, мне нужно проверить с аннотацией javax.validation).

Поэтому я хочу проверить метод программно, однако я не нашел способчтобы сделать это для методов еще, я только смог из класса (когда я использую класс Dto), с методом validate из Validated class.

Кто-нибудьможете подсказать как это сделать.

С уважением.

Обновлено 11.09.2009:

Я нашел способ сделать это изследующий метод:

private <T> void validate(T currentObject, String methodName, Object...parameterValues) {
    Set<ConstraintViolation<T>> errors=null;
    ExecutableValidator executableValidator  = validator.forExecutables();
    for (Method method : currentObject.getClass().getMethods()) {
      if (methodName.equals(method.getName())) {
          errors = executableValidator.validateParameters(currentObject, method, parameterValues);
        break;
      }
    }
    System.out.println((errors != null && !errors.isEmpty())?"There are exceptions":"There are not exceptions");
}

Если кто-то может сделать это с отражениями и проще всего, я буду вам благодарен.

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