在我的mule应用程序中,我在mule-app.properties文件中定义了一些属性,因此我可以在CloudHub上“动态”更改它。
在CloudHub上部署一切都是正确的,并获取我使用的java类的属性:
System.getProperty("propertyName")
。
现在我的问题是在mule standalone上部署应用程序,当它尝试在java类中使用属性时,它返回null
,即使在xml文件中我可以使用通常${propertyName}
的属性
还有其他方法可以从java类访问这些属性吗?
答案 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);
}
---}