gpt4 book ai didi

java - 为标准 bean 验证注释注册新的约束 validator

转载 作者:搜寻专家 更新时间:2023-11-01 02:36:51 26 4
gpt4 key购买 nike

我想知道是否可以将某些自定义类型的新约束 validator 注册到 Bean 验证规范定义的注解中。例如,假设我有一个累积多个 int 值的类

public class IntContainer
{
private int value1;
private int value2;


public int getValue1()
{
return value1;
}


public void setValue1(final int value1)
{
this.value1 = value1;
}


public int getValue2()
{
return value2;
}


public void setValue2(final int value2)
{
this.value2 = value2;
}
}

我想注册一个自定义约束 validator 来支持这种类型的@Positive 注释(而不是创建一个自定义注释)。

public class PositiveIntContainerValidator implements ConstraintValidator<Positive, IntContainer>
{
@Override
public boolean isValid(final IntContainer value, final ConstraintValidatorContext context)
{
//TODO: do some validation here based on IntContainer state
return false;
}
}

以便稍后我可以使用它:

@Positive
private IntContainer valueContainer;

最佳答案

可以将 validator 的完全限定名称添加到 META-INF/services/javax.validation.ConstraintValidator 文件中。这将允许 Hibernate Validator 获取您的 validator 并将其用于您的自定义类型。

如果需要,请在此 post 中查看更多详细信息(“对非标准类使用标准约束”部分)

关于java - 为标准 bean 验证注释注册新的约束 validator ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47659020/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com