Свойства Spring Boot. Почему я получаю сообщение об ошибке EL1041E: после анализа допустимого выражения в выражении «хэшJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Свойства Spring Boot. Почему я получаю сообщение об ошибке EL1041E: после анализа допустимого выражения в выражении «хэш

Сообщение Anonymous »

Я добавил файл свойств в свое загрузочное приложение Spring, который использую для инициализации некоторых значений для моей программы. Это работает как для простых значений, так и для некоторых более сложных значений, например примеров, которые я создал для value.a и value.b, показанных ниже.

Код: Выделить всё

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}' }
Мне бы хотелось сделать что-нибудь необычное, чтобы объединить их, как в value.c ниже, однако это выдает ошибку. Это я пытаюсь сделать что-то сложное для файла свойств? Или я где-то допустил ошибку?

Код: Выделить всё

value.c = #{ systemEnvironment['MY_VALUE_C'] != null ? systemEnvironment['MY_VALUE_C'] : '#{ ${value.a}:${value.b} }' }
Он не компилируется с value.c, как этот, но выдает трассировку стека с ошибкой:


InvoctionTargetException: ошибка при создании bean-компонента с именем MyProperties: неудовлетворенная зависимость, выраженная через параметр 0 метода setValueC; вложенным исключением является org.springframework.beans.factory.BeanExpressionException: не удалось выполнить синтаксический анализ выражения; вложенным исключением является org.springframework.expression.spel.SpelParseException: EL1041E: после анализа допустимого выражения в выражении остается больше данных: 'hash(#)' -> [Справка 1]


Чтобы установить значения в Java, у меня есть файл свойств, и метод установки значений выглядит следующим образом:

Код: Выделить всё

@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;
}
Выход, которого я пытаюсь достичь, заключается в том, чтобы value.c входил как a:b - или любые другие переменные среды a и b, разделенные двоеточием. .

Я не очень в этом разбираюсь, поэтому, возможно, я делаю это совершенно неправильно. Можно ли таким способом добиться того, чего я хочу? Что я сделал не так, если это так?

Подробнее здесь: https://stackoverflow.com/questions/497 ... sing-a-val
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»