你可以在在Mule ESB配置使用ant样式属性占位符。例如:
<smtp:outbound-endpoint user="${smtp.username}" password="${smtp.password}"/>
这些占位符的值可以为各种方式,如下描述的部分。
全局属性
您可以使用元素从Mule配置中设置一个占位符值,如在另一个Mule配置文件:
<global-property name="smtp.username" value="JSmith"/>
<global-property name="smtp.password" value="ChangeMe"/>
配置文件
在 Anypoint Studio,您可以在您的项目中创建和编辑属性文件的文件夹
从文件加载属性,您可以使用标准的speing 要素 :
<context:property-placeholder location="smtp.properties"/>
<flow name="myProject_flow1">
<logger message="${propertyFromFile}" doc:name="System Property Set in Property File"/>
</flow>
加载多个属性文件,使用逗号隔开:
<context:property-placeholder location="email.properties,http.properties,system.properties" placeholderPrefix="${"/>
因为属性文件、系统属性和环境变量相同的语法
<context:property-placeholder location="app.properties" system-properties-mode="ENVIRONMENT"/>
<flow name="myProject_flow1">
<logger message="${propertyFromFile}" doc:name="System Property Set in Property File"/>
</flow>
Message 属性
参照 Mule-specific expression language-MEL学习
System 属性
占位符值可以来自一个JDK系统属性。如果你从命令行启动mule,您将指定的属性如下:
mule -D-M-Dsmtp.username=JSmith -D-M-Dsmtp.password=ChangeMe
或者编辑系统属性conf/wrapper.conf。如果你的Mule部署为 webapp。mule在容器中运行时,或在mule2.2.2还可以在web.xml中指定服务ID。如下所示
<context-param>
<param-name>mule.serverId</param-name>
<param-value>MyServer</param-value>
</context-param>
如果你已编程方式启动Mule,你可以指定属性在mule context启动之前。
System.getProperties().put("smtp.username", "JSmith");
System.getProperties().put("smtp.password", "ChangeMe");