Я пытаюсь добавить дополнительную логику проверки в свои компоненты REST с помощью аннотаций. Это всего лишь пример, но дело в том, что аннотация должна использоваться для нескольких объектов ресурсов REST/DTO.
Я надеялся на такое решение:
public class Entity {
@NotNull // JSR-303
private String name;
@Phone // Custom phonenumber that has to exist in a database
private String phoneNumber;
}
@Component
public class PhoneNumberValidator implements Validator { // Spring Validator
@Autowired
private PhoneRepository repository;
public boolean supports(Class<?> clazz) {
return true;
}
public void validate(Object target, Errors errors) {
Phone annotation = // find fields with annotations by iterating over target.getClass().getFields().getAnnotation
Object fieldValue = // how do i do this? I can easily get the annotation, but now I wish to do a call to repository checking if the field value exists.
}
}