我的属性值应介于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
注释,但结果相同
所以这是解决方案as described here:
@DecimalMax("1.0") @DecimalMin("0.0")
Double fraction;
正如(明确)@Min
和@Max
的文件所述。这同样适用于@DecimalMin
和@DecimalMax
请注意,由于舍入错误,不支持
double
和float
(某些提供商可能会提供一些近似支持)
您可以使用BigDecimal
或BigInteger
代替。