当前正在使用Hazelcast和持久性数据库作为Hbase,
到目前为止,我有10个地图,每个地图都使用一个地图存储,所以我使用10个地图存储类(即)在所有10个类中都实现了MapStore。这造成了维护的复杂性。
所以我要做的是,我保留了一个通用地图存储,并为所有地图实现了相同的类,它具有接受它的能力,为了明确起见,我做了类似的事情
Map1 - com.test.GenericMapStore
Map2 - com.test.GenericMapStore
Map3 - com.test.GenericMapStore
...
Map10 - com.test.GenericMapStore
它的映射如上所述
但是对于store,storeAll,loadAllKeys,loadAll中的方法,它可以检查对象的实例并找到mapName ---- 不是一个好方法
但是对于诸如delete,deleteAll和load之类的方法-我没有任何线索来找到mapName,
请告诉我以任何方式对所有地图使用singleMapStore?
因此,我需要一个地图存储实现,其中对于mapstore中的所有方法,我都需要传递名为mapName的PARAM。因此,如果我有通用的实现,则可以通过在所有应用中使用MAP NAME参数来使用它方法,
示例:
Store(String key, Object object, String mapName),StoreAll(Map, String mapName),delete(String key, String mapName)delete(Collections keys, String mapName)
...如果有办法,请告诉我...
谢谢hazelcast团队,您好,我们做得很好...非常感谢...
感谢致敬,
哈里
最佳答案
您应该可以使用MapStoreFactory
(docs)实现此目的。
使用地图名称调用MapStoreFactory,您可以将该名称传递到GenericMapStore中。
在您的MapStoreFactory中:
public MapLoader newMapStore(mapName, props) {
return new GenericMapStore(mapName);
}
然后在GenericMapStore中,您将获得每个操作的mapName。