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

Использование @Value Spring Аннотация с помощью Groovy

У меня есть класс groovy, где я wan, чтобы autowire значение свойства.

Например:

public @Value("${valueA}" ) String valueA;

С добавлением свойства-заполнителя в моем контексте приложения

<context:property-placeholder location="classpath:spring/app.properties" />

В app.properties установлено значение "valueA", поэтому теоретически это должно заполнить значение String в моем классе во время выполнения.

Эта настройка работает отлично, если я использую класс java, но не если я использую класс groovy.

Я получаю ошибку компиляции:

Ошибка: ожидается, что '$ valueA' будет встроенной константой типа java.lang.String в @org.springframework.beans.factory.notation.Value
Ошибка: атрибут "значение" должен иметь тип "java.lang.String"; но нашел тип "java.lang.Object" в @org.springframework.beans.factory.notation.Value

Я просто хочу знать, правильный ли приведенный выше синтаксис при использовании класса groovy, а если нет, то, что является правильным синтаксисом для автонастройки параметра @Value во время выполнения.

4b9b3361

Ответ 1

Используйте одинарные кавычки, т.е.

public @Value('${valueA}') String valueA

Ответ 2

так как использование $вызывает Groovy для интерпретации аргумента аннотации как GString, вы получаете ошибку компиляции. вы можете либо сбежать \$, либо использовать одинарные кавычки.