Подтвердить что ты не робот

Как определить @Value как необязательный

У меня есть в Spring bean:

@Value("${myValue}")
private String value;

Значение вводится правильно. Однако переменная должна быть необязательной, она передается как параметр командной строки (который затем добавляется в контекст Spring с использованием SimpleCommandLinePropertySource), и этот аргумент не всегда существует.

Я попробовал использовать оба значения, чтобы обеспечить значение по умолчанию:

@Value("${myValue:}")
@Value("${myValue:DEFAULT}")

но в каждом случае аргумент по умолчанию после двоеточия вводится, даже если имеется фактическое значение - это выглядит переопределяющим тем, что должен вводить Spring.

Каков правильный способ указать, что @Value не требуется?

Спасибо

4b9b3361

Ответ 1

Каков правильный способ указать, что @Value не требуется?

Работа над предположением, что с помощью "не требуется" вы имеете в виду null, затем...

Вы правильно отметили, что вы можете указать значение по умолчанию справа от символа :. Ваш пример был @Value("${myValue:DEFAULT}").

Вы не ограничены обычными строками в качестве значений по умолчанию. Вы можете использовать выражения SPEL, а простое выражение SPEL для возврата null:

@Value("${myValue:#{null}}")