Spring ConfigurationProperties проверка двойного значения
У меня есть значение свойства, которое должно быть в диапазоне от 0 до 1. Мне нравится Spring's 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 ответа
Итак, вот решение, как описано здесь:
@DecimalMax("1.0") @DecimalMin("0.0")
Double fraction;
Как (четко) указано в документации обоих @Min
а также @Max
, То же самое относится и к @DecimalMin
а также @DecimalMax
Обратите внимание, что
double
а такжеfloat
не поддерживаются из-за ошибок округления (некоторые поставщики могут предоставлять приблизительную поддержку)
Вы можете использовать BigDecimal
или же BigInteger
вместо.