Недавно я играл с последней версией 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, если вместо исключения валидатора спящего режима.