如何在独立部署中读取mule-app.properties的属性?

时间:2014-12-11 10:30:58

标签: java mule cloudhub

在我的mule应用程序中,我在mule-app.properties文件中定义了一些属性,因此我可以在CloudHub上“动态”更改它。 在CloudHub上部署一切都是正确的,并获取我使用的java类的属性: System.getProperty("propertyName")

现在我的问题是在mule standalone上部署应用程序,当它尝试在java类中使用属​​性时,它返回null,即使在xml文件中我可以使用通常${propertyName}的属性

还有其他方法可以从java类访问这些属性吗?

2 个答案:

答案 0 :(得分:4)

使用“系统属性”设置Cloudhub属性,这就是您可以通过System.getProperty()访问它们的原因。

mule-app.properties很特别,因为此属性文件会自动加载到Mule注册表中,因此您可以通过Mule Context访问它。但最好从Mule配置中将它们注入Java类:

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

public class YourJavaClass{
   String myVar ...
}

答案 1 :(得分:0)

另一种解决方案是:

将您的值放入 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);
}

---}