<hz:map id="loggedInUserMap" name="loggedInUserMap"
instance-ref="ipds" scope="singleton" />
Questo si tradurrà nella creazione di un fagiolo di nome 'loggedInUserMap' (indicato per attributo id
). Il nome della mappa nel contesto Hazelcast sarà anche "loggedInUserMap" (indicato dall'attributo name
).
A <hz:map>
tag nel <hz:config>
riferisce a una configurazione specifica che può essere utilizzato durante la creazione di un IMap
(Here di denominato MapConfig
). Potrebbero esserci molti di questi MapConfigs
in un file hazelcast.xml. Uno MapConfig
può essere condiviso da più IMaps e utilizzando il jolly *
.
Se si dispone di un MapConfig con name
corrispondente al "nome" della mappa utilizzato nel contesto nocciola, tale configurazione verrà utilizzata durante la creazione dell'oggetto IMap. Nel tuo caso è "loggedInUserMap".
Se non trovato, MapConfig con nome "default" verrà utilizzato per creare quell'oggetto IMap.
Se non trovato, le impostazioni predefinite per IMap verranno utilizzate durante la creazione di quell'oggetto IMap.
Penso che il seguente esempio risolva chiaramente le cose.
Esempio 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" />
codice di esempio
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".
spero che il frammento di codice con i commenti sono auto-esplicativi.
Grazie. Potrebbero essere dei nocciolai ragazzi potrebbero modificare i tag xml per renderlo auto esplicativo. – Manish
Vero, tuttavia rinominare i tag xml potrebbe creare problemi di compatibilità (comunque minori) a questo punto. Tuttavia, la documentazione può essere modificata per dichiarare chiaramente i fatti, può essere con un esempio. – Dinesh