spring-boot - 是否对 Integer 字段进行任何验证以检查 rest api 的确切值?@Min 和 @Max 不起作用
问题描述
喜欢
@Min or @Max is not working
我希望精确值匹配。
解决方案
您可以创建自己的注释来验证它。
@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;
}
玩得开心,您还可以向自定义注释添加参数并避免硬编码值。
推荐阅读
- python - 如何在 docker 上的 Jenkins 中设置 PYTHONPATH
- c++ - C ++无法插入空向量
- scala - 如何避免在Scala的Spark RDD中使用collect?
- python - 如何使用 python webdriver 在此文本框中书写?
- scala - Play Framework 2.5:未定义 trait Filter 类型 => akka.stream.Materializer 中的方法 mat
- paypal - 验证订单 ID 是否存在
- angular - Webpack 生成 SCSS 源映射但不生成 JS
- postgresql - 连接到 Postgres 的 Kotlin 错误:org.postgresql.util.PSQLException:发生异常情况导致驱动程序失败
- node.js - 如何在使用 Google Drive API v3 移动文件之前检查文件是否已完成上传?
- javascript - 为什么 react-select 不适用于状态选项?