Apache ActiveMQ Artemis 在安全性設定、位址設定以及建立消費者時,使用特定的語法來表示萬用字元。

此語法類似於 AMQP 所使用的語法。

Apache ActiveMQ Artemis 萬用字元表達式包含以分隔符號分隔的單字。預設的分隔符號是 .(句點)。

特殊字元 #* 也具有特殊含義,可以用來取代一個單字

請注意,萬用字元不能像 正規表達式 中的萬用字元那樣使用。它們僅作用於以分隔符號分隔的單字

1. 匹配任何單字

字元 # 的意思是「匹配任何零個或多個單字的序列」。

因此,萬用字元 news.europe.# 會匹配

  • news.europe

  • news.europe.sport

  • news.europe.politics

  • news.europe.politics.regional

news.europe.#不會匹配

  • news.usa

  • news.usa.sport

  • entertainment

2. 匹配單一單字

字元 * 的意思是「匹配單一單字」。

萬用字元 news.* 會匹配

  • news.europe

  • news.usa

news.*不會匹配

  • news.europe.sport

  • news.usa.sport

  • news.europe.politics.regional

萬用字元 news.*.sport 會匹配

  • news.europe.sport

  • news.usa.sport

news.*.sport不會匹配

  • news.europe.politics

3. 自訂語法

可以使用代理程式組態進一步設定萬用字元位址的語法。為此,需要使用 <wildcard-addresses> 組態標籤。

<wildcard-addresses>
   <routing-enabled>true</routing-enabled>
   <delimiter>.</delimiter>
   <any-words>#</any-words>
   <single-word>*</single-word>
</wildcard-addresses>

上面的範例顯示了預設組態。