I actually try to use a @Value into a java Validator, like this
@Value("${necessary-list}")
private List<String> list= new ArrayList<>();
@Override
public boolean isValid(String element, ConstraintValidatorContext constraintValidatorContext) {
return list.contains(element);
}
}
@Documented
@Constraint(validatedBy = CustomValidator.class)
@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface IsInList{
String message() default "test";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
I have put the annotation in a filed of the object "Item"
@Service
public class ItemValidator {
public void validateAddress(Item item) {
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
Set<ConstraintViolation<Item>> constraintViolations = validator.validate(item);
if (isNotEmpty(constraintViolations)) {
throw new ConstraintViolationException(constraintViolations);
}
}
}
In configuration, i have try two method:
necessary-list: item1,item2,item3
necessary-list:
- item1
- item2
- item3
But doesn't work :/ And the @Value work in a Controller
Any tips for this?