Получить значение из application-lcl.properties в XML конфигурации Spring

#java #spring #spring-boot #spring-mvc

#java #spring #spring-загрузка #spring-mvc

Вопрос:

у меня есть в каком-то приложении Spring в application-lcl.properties строка с :

 key1=value1
  

Я хочу использовать значение key1 в другом XML, подобном этому :

 <appender name="ELASTIC" class="com.internetitem.logback.elasticsearch.ElasticsearchAppender">
    <url>${key1}</url>
  

${key1} не работает. Вы знаете, как это сделать? (.xml уже существует)

Спасибо

Комментарии:

1. Вы не можете использовать замену свойств Spring за пределами компонентов, управляемых Spring. В этом случае Spring не будет обрабатывать logback.xml файл для замены свойства.

Ответ №1:

Это двухэтапный процесс

  1. Загрузить файл свойств в java.util.java.util.Объект класса свойств.

  2. Используйте Properties.storeToXML() метод для записи содержимого в формате XML

    Строка inPropertiesFile = «application.properties»; Строка outXmlFile = «applicationProperties.xml «;

    Входной поток = новый FileInputStream (inPropertiesFile); //Входной файл OutputStream os = новый FileOutputStream(outXmlFile); // Выходной файл

    Properties props = новые свойства(); props.load(есть);

    props.storeToXML(os, «application.properties», «UTF-8»);

Комментарии:

1. привет, файл xml уже существует, и я не могу добавить к нему новые строки через InputStream

Ответ №2:

в XML поместите

<springProperty name="value1" source="key1"/>

а затем используйте его, вызвав

<url>${value1}</url>