Spring ConfigurationProperties验证Double值

问题描述 投票:1回答:2

我的属性值应介于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注释,但结果相同

spring-boot configurationproperties
2个回答
2
投票

所以这是解决方案as described here

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

0
投票

正如(明确)@Min@Max的文件所述。这同样适用于@DecimalMin@DecimalMax

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

您可以使用BigDecimalBigInteger代替。

© www.soinside.com 2019 - 2024. All rights reserved.