Spring ConfigurationProperties验证Double值

时间:2018-09-04 06:50:13

标签: spring-boot configurationproperties

我的属性值应在0到1之间。 我喜欢Spring的ConfigurationProperties来验证属性值。

因此,在我的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批注,但结果相同

2 个答案:

答案 0 :(得分:2)

这是解决方法as described here

   @DecimalMax("1.0") @DecimalMin("0.0")
    Double fraction;

答案 1 :(得分:0)

@Min@Max的文档都明确指出。 @DecimalMin@DecimalMax

也是如此
  

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

您可以改用BigDecimalBigInteger

相关问题