В любом случае установить значение по умолчанию только при наличии ошибки синтаксического анализа для @value - PullRequest
0 голосов
/ 01 ноября 2019

В Spring можно использовать @Value("${num:123}") private int number; для ввода значения.

Очевидно, что по умолчанию будет работать, если в файле конфигурации нет поля num.

Однако, когда естьявляется неправильно отформатированным. Spring выдаст ошибку, например:

09:54:28.392 [main] WARN org.springframework.context.annotation.AnnotationConfigApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: 
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'valuesApp': Unsatisfied dependency expressed through field 'number'; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: "string"

Я знаю, что вы можете сделать значение введенным типом как String, а затем вручную преобразовать его в тип Integer (может перехватить ошибку и т. Д.). Тем не менее, есть ли более элегантный способ обработки дела, как это? Так что Spring будет использовать значение по умолчанию в случае неправильного форматирования файла конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...