Mulesoft 中的全局变量

Global Variable in Mulesoft

我们在 TIBCO 中有全局变量概念,我们在 Mulesoft 中哪里有相同的概念?

喜欢设置全局变量,以便在 运行 时间或基于环境的部署。 Mulesoft

有没有类似的案例

每个 mule 应用程序可以设置 global-properties,也可以设置环境变量来覆盖和设置 environment-specific 属性。这些可以单独配置,也可以设置环境变量以加载每个环境的特定 属性 文件。所有信息都在此处的文档中:https://docs.mulesoft.com/mule-runtime/4.2/configuring-properties

Mule 4 从早期的运行时版本继承了全局变量的传统,或者用一些通用术语称为“属性 占位符”:

Mule ESB 的这一方面主要用于为特定于环境的变量赋值,并且在常见情况下用于维护抽象和安全性: 属性 占位符:

<smtp:outbound-endpoint user="${smtp.username}" password="${smtp.password}"/>

全局属性:

<global-property name="smtp.host" value="smtp.mail.com"/>
<global-property name="smtp.subject" value="Subject of Email"/>

属性文件:

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns="http://www.mulesoft.org/schema/mule/core"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
          http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">

<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"/>

消息属性:

#[message.inboundProperties['Content-Type']]

系统属性 OS 或一般情况下的环境变量: 一般:${variableName} 来自 OS:<logger message="${USER}" doc:name="Environment Property Set in OS" />

云中心全局引用变量的属性: 登录您的 Anypoint 平台帐户。 1. 进入云集。 2. 单击部署应用程序部署新应用程序,或 select 运行 应用程序并单击管理应用程序。 3. Select“设置”部分中的“属性”选项卡。

参考:https://docs.mulesoft.com/mule-runtime/{Runtime-version}/configuring-properties

对于每个 Mule 应用程序,都有可以相应配置的全局属性。在他们称之为 "Property placeholder" 的 Mule 4 中,可以通过多种方式提供其值。 所以我们可以使用全局 属性 语法来引用 .yaml 或 .properties 文件并创建依赖于配置属性的新全局属性。

有关详细信息,请参阅

如果你问的是全局变量?然后它与 mule 3 有更多关系。在 Mule 3 中,我们根据使用范围有一个会话、局部、全局变量。 在 mule 4 中没有全局变量和局部变量的概念。 mule 4 中声明的所有变量都具有全局范围。这意味着您可以跨所有流、子流、XML 文件访问它。 注意:Mule 消息负载的范围不是全局的。

所有其他答案都讨论了 属性 使用 属性 占位符(mule 3 概念)和全局元素中的全局配置的参数化。

我相信你必须改变这个问题。不要将您在运行时传递的值称为“全局变量”。全局变量是一个完全不同的概念。

在 Mulesoft 中,我们称之为运行时变量。我们在 Mulesoft 中创建了一些名为属性文件的文件,即环境-specific.for 示例

如果我们在开发环境中部署我们的 Mulesoft API 然后创建一个名为 “dev.properties”。在此文件中添加我们在下面的部署时间需要的所有属性

api.host=abc api.port=8081

现在在你的主界面添加一个全局配置来读取这个文件如下#

<configuration-properties
        doc:name="env file properties configuration"
        doc:id="010e36f9-1ef3-4104-b42f-21d2d4012ef7"
        file="properties/${mule_env}.properties"
        doc:description="Global configuration to specify environmnet property files" />

here mule_env=environment name as here its dev will get from your API deployment process (with the help of dev-ops you can set it in scripts)