<hz:map id="loggedInUserMap" name="loggedInUserMap"
instance-ref="ipds" scope="singleton" />
这将创建一个名为“loggedInUserMap”的bean(由
id
属性指向)。在Hazelcast上下文中,该映射的名称也将是“loggedInUserMap”(由
name
属性指向)。
<hz:config>
内部的
<hz:map>
标签引用了特定的配置,可用于创建
IMap
(以下简称
MapConfig
)。在hazelcast.xml中可能有许多这样的
MapConfigs
。一个
MapConfig
也可以使用通配符
*
共享多个IMaps。
如果您有一个与在Hazelcast上下文中使用的地图“名称”匹配的
name
的MapConfig,则在创建该IMap对象时将使用该配置。在您的情况下,它是“loggedInUserMap”。
如果未找到,则将使用名称为“default”的MapConfig来创建该IMap对象。
如果未找到,则在创建该IMap对象时将使用IMap的默认值。
我认为以下示例将清楚地解释一切。
示例配置
<hz:config>
<hz:instance-name>${hz.instance.name}</hz:instance-name>
<hz:group name="${hz.group.name}" password="${hz.group.password}"/>
<hz:map name="default"
backup-count="2" max-size="0"
time-to-live-seconds="25" eviction-percentage="30"
eviction-policy="NONE"/>
<hz:map name="userMap"
backup-count="2" max-size="0"
time-to-live-seconds="6000" eviction-percentage="30"
eviction-policy="NONE"/>
<hz:map name="FruitMap*"
backup-count="2" max-size="0"
time-to-live-seconds="10" eviction-percentage="30"
eviction-policy="NONE"/>
</hz:config>
<hz:map instance-ref="ipds" id="userMapSpringId" name="userMap" />
<hz:map instance-ref="ipds" id="mangoMapSpringId" name="FruitMap1" />
<hz:map instance-ref="ipds" id="appleMapSpringId" name="FruitMap2" />
<hz:map instance-ref="ipds" id="alientFruitMapSpringId" name="AlienFruit" />
示例代码
IMap map1 = (IMap) ctx.getBean("userMapSpringId");
IMap map2 = (IMap) ctx.getBean("mangoMapSpringId");
IMap map3 = (IMap) ctx.getBean("appleMapSpringId");
IMap map4 = (IMap) ctx.getBean("alientFruitMapSpringId");
我希望带有注释的代码段可以自我解释。