Как получить некоторые общие данные в пользовательском ConstraintValidator

#hibernate-validator

#hibernate-validator

Вопрос:

Я проверяю класс ввода, используя Java validation api и hibernate validator. я создал несколько пользовательских аннотаций для некоторой бизнес-проверки, и я использую эти аннотации во входном классе. ниже приведен пример такого средства проверки аннотаций —

импортируйте javax.validation.ConstraintValidator; импорт javax.validation.ConstraintValidatorContext;

 public class DBColumnConstraintValidator implements   ConstraintValidator<DatabaseColumnConstraint, Object> {

private DBColumnConstraintValidator databaseColumnConstraint;

private final List<DatabaseConstraintValidationStep> steps = new ArrayList<DatabaseConstraintValidationStep>();

@Override
public void initialize(DBColumnConstraintValidator  databaseColumnConstraint) {



}

@Override
public boolean isValid(Object value, ConstraintValidatorContext context) {

    //Validation logic 


}
  

}

Я хочу использовать некоторые данные для моей логики проверки внутри метода isValid(), и эти данные являются общими и будут использоваться несколькими другими классами валидаторов.

есть ли какой-либо способ установить или сделать эти общие данные доступными для метода isValid()?

Ответ №1:

Если вы используете CDI или Spring, вы можете просто использовать внедрение зависимостей (например, using @Inject ) в вашей реализации средства проверки ограничений, чтобы получить любую контекстную службу или данные, которые вам нужны.