1

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

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

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

4

2 回答 2

4

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

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

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

public class YourJavaClass{
   String myVar ...
}
于 2014-12-11T11:56:49.673 回答
1

另一种解决方案是:

把你的价值观放在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);
}

---}
于 2018-09-13T10:02:48.667 回答