如何在自定义ConstraintValidator中获取一些常用数据

时间:2016-10-04 14:09:07

标签: hibernate-validator

我正在使用Java验证api和hibernate验证器验证输入类。 我为一些业务验证创建了一些自定义annontation,我在输入类上使用这些注释。下面是这种注释验证器的一个例子 -

import javax.validation.ConstraintValidator; import 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 个答案:

答案 0 :(得分:0)

如果您使用的是CDI或Spring,您只需在约束验证器实现中使用依赖注入(例如使用@Inject)来获取您需要的任何上下文服务或数据。