Я добавил файл свойств в своем приложении Spring Boot, которое я использую для инициализации некоторых значений для моей программы. Это работает для простых значений, а некоторые немного более сложные, например, примеры, которые я создал для значения .a и value.b, показанные ниже. < /P>
my.value.a=a
my.value.b=b
value.a = #{ systemEnvironment['MY_VALUE_A'] != null ? systemEnvironment['MY_VALUE_A'] : '${my.value.a}' }
value.b = #{ systemEnvironment['MY_VALUE_B'] != null ? systemEnvironment['MY_VALUE_B'] : '${my.value.b}' }
< /code>
Я хотел бы сделать что -то необычное, чтобы объединить их, как в значении. Ниже, однако это дает мне ошибку. Это я пытаюсь сделать что -то сложное для файла свойств? Или есть ошибка, которую я где -то допустил? < /P>
value.c = #{ systemEnvironment['MY_VALUE_C'] != null ? systemEnvironment['MY_VALUE_C'] : '#{ ${value.a}:${value.b} }' }
< /code>
он не компилируется с значением. Вложенное исключение - org.springframework.beans.factory.beanexpressionException: Произволение выражения не удалось; Вложенное исключение -org.springframework.expression.spel.spelparseexception: el1041e: после анализа достоверного выражения в выражении еще больше данных: 'hash (#)' -> [help 1] < /p>
< /blockquote>
, чтобы установить значения. это: < /p>
@Value("${value.a}")
public void setValueA(String value) {
this.a = value;
}
@Value("${value.b}")
public void setValueB(String value) {
this.b = value;
}
@Value("${value.c}")
public void setValueC(String value) {
this.c = value;
}
< /code>
Вывод, которого я пытаюсь достичь, является для того, чтобы Value.c был заменен в виде: B - или любых переменных среды A и B, разделенные толстой кишкой. Можно ли достичь того, чего я хочу таким образом? Что я сделал неправильно, если это так?
Подробнее здесь: https://stackoverflow.com/questions/497 ... sing-a-val
Свойства Spring Boot - почему я получаю ошибку EL1041E: После анализа достоверного выражения в выражении еще больше данн ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение