Spring разбирает свойство как String вместо другого свойства - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть существующий файл свойств, который мне нужно использовать.Там я должен определить новое свойство, которое выглядит как - $ {testText1}. $ {TestText2}

Я не хочу, чтобы эти свойства редактировались, т. Е. Когда я на самом деле получаю эти значения, я хочу $ {testText1}. $ {testText2} вместо замененных значений.

Так что мой файл свойств будет выглядеть так - someProperty=${testText1}.${testText2}

Теперь, когда я получу это:

@Value ("$ {someProperty}")

private String myValue;

myValue должна содержать строку - ${testText1}.${testText2}, а не заменяемые значения.

Как я могу это сделать?

1 Ответ

0 голосов
/ 25 сентября 2018

Вы можете сделать это двумя способами:

1. Определить новый класс конфигурации:

@Configuration
@ConfigurationProperties
public class SomePropertyConfig {

    //name of the property from application.properties
    private String someProperty;

    public String getSomeProperty() {
        return someProperty;
    }

    public void setSomeProperty(String someProperty) {
        this.someProperty = someProperty;
    }
}

После этого вы можете автоматически связать этот компонент

@Autowired
 private SomePropertyConfig somePropertyConfig;

Таким образом, целевое свойство будет введено в конфигурации

Если вы не возражаете против изменения файла application.properties, вы можете использовать язык выражения Spring.

application.properties

 someProperty= #{'$'}{testText1}.#{'$'}{testText2}
...