1

我有一个应该在 0 和 1 之间ConfigurationProperties的属性值。我喜欢 Spring 来验证属性值。

所以在我的ConfigProperties课堂上,我添加了@Validated注释并写了这个:

@Min(0)
@Max(1)
Double fraction;

奇怪的是,验证的工作方式看起来像flooring / roofing属性文件中的值。

这是我在 conf 文件中输入的不同值的结果:

fraction=-2.1 -> Spring 报告错误并停止(好!)

fraction=2.1 -> Spring 报告错误并停止(好!)

fraction=-1.5-> Spring 不报错就启动了(不好!)

fraction=1.5-> Spring 不报错就启动了(不好!)

我也尝试使用@Range注释,但结果相同

4

2 回答 2

2

所以这是这里描述的解决方案:

   @DecimalMax("1.0") @DecimalMin("0.0")
    Double fraction;
于 2018-09-04T06:59:38.790 回答
0

正如@Min@Max. 这同样适用于@DecimalMin@DecimalMax

请注意,由于舍入错误,不支持 和 (某些提供商可能会提供一些近似支持doublefloat

您可以使用BigDecimalorBigInteger代替。

于 2018-09-04T06:59:10.747 回答