<hz:map id="loggedInUserMap" name="loggedInUserMap"
instance-ref="ipds" scope="singleton" />
To spowoduje utworzenie fasoli nazwie 'loggedInUserMap' (wskazanych przez atrybut id
). Nazwa mapy w kontekście Hazelcast będzie również "loggedInUserMap" (wskazywana przez atrybut name
).
A <hz:map>
znacznik wewnątrz <hz:config>
odnosi się do konkretnej konfiguracji, które mogą być wykorzystywane podczas tworzenia IMap
(tutaj dalej MapConfig
). Może być wiele takich MapConfigs
w hazelcast.xml. Jeden numer MapConfig
może być współużytkowany przez wiele plików IMAP również przy użyciu symbolu wieloznacznego *
.
Jeśli masz MapConfig z name
, który pasuje do "nazwy" mapy używanej w kontekście hazelcastu, wówczas ta konfiguracja będzie używana podczas tworzenia tego obiektu IMAP. W twoim przypadku jest to "loggedInUserMap".
Jeśli nie zostanie znaleziony, do utworzenia tego obiektu IMap zostanie użyty MapConfig o nazwie "default".
Jeśli nie zostanie znaleziony, podczas tworzenia tego obiektu IMAP zostaną użyte wartości domyślne dla IMAP.
Myślę, że poniższy przykład uporządkuje sprawy w sposób jasny.
Przykładowy config
<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" />
przykładowy kod
IMap map1 = (IMap) ctx.getBean("userMapSpringId");
// map1 will make use of the configuration with name "userMap"
IMap map2 = (IMap) ctx.getBean("mangoMapSpringId");
IMap map3 = (IMap) ctx.getBean("appleMapSpringId");
// Here two different IMaps objects are created.
// However both map2 and map3 will make use of the same configuration "FruitMap*".
IMap map4 = (IMap) ctx.getBean("alientFruitMapSpringId");
// In the case of map4, there is no configuration which matches its hazelcast name
// (AlienFruit). Hence it will make use of the configuration with name "default".
Mam nadzieję, że fragment kodu z komentarzami są oczywiste.
Dzięki. Mogą być hazelcast faceci mogą zmienić znaczniki xml, aby to samo wyjaśnia. – Manish
To prawda, jednak zmiana nazwy znaczników xml może spowodować problemy ze zgodnością (choć niewielkie) w tym momencie. Jednak dokumentacja może zostać zmodyfikowana, aby jasno przedstawić fakty, może być na przykładzie. – Dinesh