我的属性值应在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
批注,但结果相同
答案 0 :(得分:2)
这是解决方法as described here:
@DecimalMax("1.0") @DecimalMin("0.0")
Double fraction;
答案 1 :(得分:0)
@Min
和@Max
的文档都明确指出。 @DecimalMin
和@DecimalMax
请注意,由于舍入错误,不支持
double
和float
(某些提供程序可能会提供一些近似支持)
您可以改用BigDecimal
或BigInteger
。