首页 > 解决方案 > brokerURL 语法我不清楚

问题描述

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

DU_MESSAGING_SERVER_URL(我们系统上的系统参数) MESSAGING_SERVER_URL(我们系统上的系统参数)tcp://localhost:61917

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

标签: javaspringactivemq

解决方案


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

这在您可能不想修改配置文件而只想设置系统属性(例如在测试环境和产品之间移动)的情况下很有用。您只需将系统属性的名称放在配置文件中,该属性的值将在加载配置时被替换。例如,您可以${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则将使用。


推荐阅读