brokerURL 语法我不清楚

brokerURL syntax not clear to me

有人可以帮助我理解这个 ActiveMQConnectionFactory bean 上的语法吗? 3个选项有什么用?这是什么逻辑?

DU_MESSAGING_SERVER_URL (system param on our system) MESSAGING_SERVER_URL (system param on our system) tcp://localhost:61917

<property name="brokerURL" value="${DU_MESSAGING_SERVER_URL:${MESSAGING_SERVER_URL:tcp://localhost:61917}}"/>

此语法使用 ${} 用于将系统或环境属性加载到配置文件中。

这在您可能不想修改配置文件而只想设置系统 属性 的情况下很有用(例如,在测试环境和生产环境之间移动)。您只需将系统名称 属性 放入配置文件中,然后 属性 的值将在加载配置时被替换。例如,您可以在配置文件中使用 ${foo} 然后定义此系统 属性 -Dfoo=bar 然后值 bar 将在您的配置文件中使用。

如果系统属性没有设置,:字符定义一个默认值。例如,您可以在配置文件中使用 ${foo:defaultFoo},然后如果 foo 系统 属性 是 未定义 则值 defaultFoo 将在您的配置文件中使用。

在您的情况下,这些想法嵌套在一起。因此,如果您使用 ${DU_MESSAGING_SERVER_URL:${MESSAGING_SERVER_URL:tcp://localhost:61917}},那么 DU_MESSAGING_SERVER_URL 系统 属性 的值将用于配置。如果未定义 DU_MESSAGING_SERVER_URL,则将评估 ${MESSAGING_SERVER_URL:tcp://localhost:61917},这将在配置中使用 MESSAGING_SERVER_URL 系统 属性 的值。如果未定义 MESSAGING_SERVER_URL,则将使用 tcp://localhost:61917