如何在Mule中获取环境信息

时间:2013-01-25 19:33:09

标签: mule

我需要在mule-config.xml中添加一些特定于生产的行为。有没有办法在骡子中获取环境信息?

9 个答案:

答案 0 :(得分:2)

您可以通过MEL访问所有系统属性。但我宁愿建议您在多个文件中模块化您的配置(例如:common-config.xml,test-config.xml,prod-config.xml),并根据环境在Mule启动时加载正确的文件。

答案 1 :(得分:2)

此外,您还可以为每个环境创建属性文件,并在mule配置文件中访问它。

答案 2 :(得分:0)

您可以创建包含所有配置的xml文件,并将文件导入/加载到mule项目

答案 3 :(得分:0)

在您的Mule配置文件(src / main / app / app-config-file.xml)中,您可以添加以下行:

<context:property-placeholder location="${environment.name}.properties" />

$ {environment.name}必须是系统环境变量。您需要确保部署应用程序的系统包含该变量。我认为你也可以在Maven构建中指定它,如果你使用的是Maven(clean install -Denvironment.name = test)。你可以试试。

要在本地测试,请右键单击您的项目,选择run as,选择运行配置,单击Environment选项卡,添加变量“environment.name”和值“local”(不带引号)并确保您的本地.properties文件存在于添加到构建路径的位置。例如,它可以是src / main / app,也可以是资源文件夹。

答案 4 :(得分:0)

MEL有一些上下文对象,如服务器,骡子,应用程序使用这些,您可以从#[server.env]获取更多信息参考 https://docs.mulesoft.com/mule-user-guide/v/3.6/mule-expression-language-basic-syntax

答案 5 :(得分:0)

您可以使用不同的mule属性文件,如Mule-dev.properties,mule-test.properties。 在全局元素中添加属性占位符:

在mule-app.properties中,根据您要使用的env值定义env = test或dev。

清理项目并进行部署。有时它无法读取env特定属性。清理项目解决了这个问题。

答案 6 :(得分:0)

您可以在项目中添加属性文件,并从属性占位符中引用它。最好在mule-app.properties文件中添加环境值,这个文件位于/ src / main / app

答案 7 :(得分:0)

你可以在这个mule-app.properties中有一个像mule.env这样的变量,并从cloudhub属性向DEV,QA,UAT,PROD发送这个属性的值,然后在mule / src / app主资源中创建不同的属性文件然后使用Properties占位符配置此属性文件,并从cloudhub

动态发送mule-env的值

答案 8 :(得分:0)

通常,这样做的方法是delcare一个属性bean,在其中设置环境特定值,如PROD,QA,DEV或local。这个特定于环境的值在mule.env = local中的mule-app.properties中设置,这需要设置为我们尝试部署它的环境,并且API会选择正确的属性文件。