Как читать свойства из mule-app.properties при автономном развертывании?

В моем приложении mule я определил некоторые свойства в файле mule-app.properties, поэтому я могу изменять их «на лету» в CloudHub. При развертывании на CloudHub все в порядке, и для получения свойств класса java я использовал: System.getProperty("propertyName").

Теперь моя проблема заключается в том, что при развертывании приложения в автономном режиме mule, когда он пытается использовать свойство в классе java, он возвращает null, даже если в файле xml я могу использовать свойства с обычным ${propertyName}.

Есть ли другой способ получить доступ к этим свойствам из класса Java?


person Simon    schedule 11.12.2014    source источник


Ответы (2)


Свойства Cloudhub устанавливаются с помощью свойств системы, поэтому вы можете получить к ним доступ через System.getProperty ().

mule-app.properties является особенным, поскольку этот файл свойств автоматически загружается в реестр Mule, чтобы вы могли получить к нему доступ через контекст Mule. Но было бы лучше внедрить их в класс Java из конфигурации Mule:

<bean class="YourJavaClass">
  <property name="myVar" value="${the.key}">
</bean>

public class YourJavaClass{
   String myVar ...
}
person Ryan Carter    schedule 11.12.2014
comment
Итак, развертывая автономный mule-app.properties на mule, невозможно найти их в системе? И нет возможности их там установить ?? В контексте мула, где загружаются? И могу я вас спросить, почему не рекомендуется использовать Mule Context? - person Simon; 11.12.2014
comment
Вы можете установить свойства системы через: -D-M-Dsome.key = value. см. mulesoft.org/documentation/display/current/ Проблема с Контекст Mule - это просто то, что вы связываете свой компонент с внутренними компонентами Mule. - person Ryan Carter; 11.12.2014

Альтернативное решение:

поместите свои значения в mule-app.properties:

poll.time=1000

Затем в вашем классе Java с помощью аннотации Spring вставьте значение в переменную Java.

import org.springframework.beans.factory.annotation.Value;
public class Test{

    @Value("${poll.time}")
    String pollTime;

    public String getToken(String id) {

System.out.println("Poll Time"+pollTime);
}

---}
person Anirban Sen Chowdhary    schedule 13.09.2018