Я создал API и добавил пользовательскую аннотацию для проверки объекта тела запроса, но это никогда не вызывалось. Ниже находится Объект. Пожалуйста go через код и помогите мне, где код должен быть исправлен?
@ NotNull, @Size также не работает
Запрос Body Object
@Getter
@AllArgsConstructor
@Sample
public class SaleRequest {
@NotNull
private Integer sale;
@NotNull
private Date dateTime;
@NotNull
@Size(min = 10, max = 10)
private String customerId;
}
Аннотация
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = {SalesRequestValidator.class})
@Documented
public @interface Sample {
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
String message() default "Invalid Sale Request";
}
Validator
public class SalesRequestValidator implements ConstraintValidator<Sample, SaleRequest> {
private String message;
@Override
public void initialize(Sample constraintAnnotation) {
this.message = constraintAnnotation.message();
}
@Override
public boolean isValid(SaleRequest sale, ConstraintValidatorContext context) {
System.out.println("Tested!");
return sale.getSale() > 0;
}
}
API Реализация
public interface SalesApi {
@RequestMapping(
value = {"/sales"},
produces = {"application/json"},
consumes = {"application/json"},
method = {RequestMethod.POST}
)
ResponseEntity<Integer> submitSale(@RequestBody @Valid SaleRequest saleRequest);
}
Не могу понять, где я ошибся