#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
) в вашей реализации средства проверки ограничений, чтобы получить любую контекстную службу или данные, которые вам нужны.