首页 > 解决方案 > 是否对 Integer 字段进行任何验证以检查 rest api 的确切值?@Min 和 @Max 不起作用

问题描述

喜欢

@Min or @Max is not working

我希望精确值匹配。

标签: spring-bootapirest

解决方案


您可以创建自己的注释来验证它。

@Constraint(validatedBy = ConstantInterestRateValidator.class)
@Target( { ElementType.METHOD, ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface ConstantInterestRate {
    String message() default "Incorrect interest rate";
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};
}
public class ConstantInterestRateValidator implements 
  ConstraintValidator<ConstantInterestRate, Integer> {

    @Override
    public void initialize(ConstantInterestRate constantInterestRate) {
    }

    @Override
    public boolean isValid(String field,
      ConstraintValidatorContext cxt) {
        return contactField != null && field == 50;
    }

}

像任何其他验证注释一样使用它

class Foo {
   @ConstantInterestRate
   Integer bar;
}

玩得开心,您还可以向自定义注释添加参数并避免硬编码值。


推荐阅读