Как определить @Value как необязательный
У меня есть в Spring bean:
@Value("${myValue}")
private String value;
Значение вводится правильно. Однако переменная должна быть необязательной, она передается как параметр командной строки (который затем добавляется в контекст Spring с использованием SimpleCommandLinePropertySource), и этот аргумент не всегда существует.
Я попробовал использовать оба значения, чтобы обеспечить значение по умолчанию:
@Value("${myValue:}")
@Value("${myValue:DEFAULT}")
но в каждом случае аргумент по умолчанию после двоеточия вводится, даже если имеется фактическое значение - это выглядит переопределяющим тем, что должен вводить Spring.
Каков правильный способ указать, что @Value не требуется?
Спасибо
Ответы
Ответ 1
Каков правильный способ указать, что @Value не требуется?
Работа над предположением, что с помощью "не требуется" вы имеете в виду null
, затем...
Вы правильно отметили, что вы можете указать значение по умолчанию справа от символа :
. Ваш пример был @Value("${myValue:DEFAULT}")
.
Вы не ограничены обычными строками в качестве значений по умолчанию. Вы можете использовать выражения SPEL, а простое выражение SPEL для возврата null
:
@Value("${myValue:#{null}}")