<hz:map id="loggedInUserMap" name="loggedInUserMap"
instance-ref="ipds" scope="singleton" />
Dies wird in Schaffung einer Bean mit dem Namen führen 'loggedInUserMap' (von id
Attribute hingewiesen). Der Name der Karte im Hazelcast-Kontext wird auch "loggedInUserMap" sein (mit dem Attribut name
).
A <hz:map>
Tag innerhalb <hz:config>
bezieht sich auf eine bestimmte Konfiguration, die verwendet werden können, während eine IMap
Erzeugen (hier bezeichnet als durch MapConfig
). Es könnte viele solche MapConfigs
in einer hazelcast.xml geben. Ein MapConfig
kann auch von mehreren IMaps mit dem Platzhalter *
geteilt werden.
Wenn Sie eine MapConfig mit name
haben, die mit der im Haspelnetzkontext verwendeten Map "name" übereinstimmt, wird diese Konfiguration beim Erstellen dieses IMap-Objekts verwendet. In Ihrem Fall ist es "loggedInUserMap".
Wenn nicht gefunden, wird MapConfig mit dem Namen "default" verwendet, um dieses IMap-Objekt zu erstellen.
Wenn nicht gefunden, werden die Standardwerte für die IMap beim Erstellen dieses IMap-Objekts verwendet.
Ich denke, das folgende Beispiel wird die Dinge klar aussortieren.
Beispielconfig
<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" />
Beispielcode
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".
Ich hoffe, dass der Code-Snippet mit Kommentaren selbsterklärend ist.
Danke. Könnten haselnussbraune Leute die XML-Tags ändern, um es selbsterklärend zu machen. – Manish
Richtig, jedoch kann das Umbenennen von XML-Tags zu diesem Zeitpunkt Kompatibilitätsprobleme (geringfügig) verursachen. Die Dokumentation kann jedoch modifiziert werden, um die Fakten klar zu machen, sei es anhand eines Beispiels. – Dinesh