Spring Cloud Stream и валидатор Hibernate - PullRequest
3 голосов
/ 08 мая 2020

Недавно я играл с последней версией Spring Cloud Stream (используя ее функциональный стиль программирования). Хотя я прочитал всю документацию , я не мог понять, как я могу использовать спящий валидатор в своей функции. Я прочитал исходный код и понял, что единственный преобразователь, который может проверить полезную нагрузку, - это SmartPayloadArgumentResolver , но он никогда не выбирался, потому что тип параметра всегда имеет тип сообщения. Итак, мне было интересно, как я могу использовать валидатор в своей функции? вот моя реализация слушателя.

@Component
public class SampleListener implements Function<Person, String>{

   @Override
   public String apply(@Valid Person person) {
       return person.getName().toUpperCase();
   }
}

В моем примере имя человека было аннотировано с помощью @NotBlank, но проблема в том, что я бы получил исключение NullPointerException, если вместо исключения валидатора спящего режима.

...