我正在使用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()方法?
答案 0 :(得分:0)
如果您使用的是CDI或Spring,您只需在约束验证器实现中使用依赖注入(例如使用@Inject
)来获取您需要的任何上下文服务或数据。