加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

java – Hazelcast弹簧配置

发布时间:2020-12-15 01:38:02 所属栏目:大数据 来源:网络整理
导读:什么是 之间的区别applicationContext中创建的标记与 中定义的标记相对应分割? 它们有什么关系? 我知道 在applicationContext中会导致创建一个IMap类型的bean,当没有 时它就不会在那儿. 但是,当定义了bean并且随后具有 时,以下配置会执行什么操作?在hazel

什么是< hz:map>之间的区别applicationContext中创建的标记与< hz:config>中定义的标记相对应分割?

它们有什么关系?

我知道< hz:map>在applicationContext中会导致创建一个IMap类型的bean,当没有< hz:map>时它就不会在那儿.

但是,当定义了bean并且随后具有< hz:map>时,以下配置会执行什么操作?在hazelcast配置下具有相同的名称?

最佳答案

这将导致创建名为“loggedInUserMap”的bean(由id属性指向). Hazelcast上下文中的地图名称也将是“loggedInUserMap”(由name属性指向).

A< hz:map>标签内< hz:config>是指在创建IMap时可以使用的特定配置(此处称为MapConfig). hazelcast.xml中可能有许多这样的MapConfigs.一个MapConfig也可以使用通配符*由多个IMap共享.

如果您的MapConfig的名称与hazelcast上下文中使用的地图“name”匹配,则在创建该IMap对象时将使用该配置.在您的情况下,它是“loggedInUserMap”.

如果未找到,将使用名称为“default”的MapConfig创建该IMap对象.

如果未找到,则在创建该IMap对象时将使用IMap的默认值.

我认为以下示例将清楚地解决问题.

示例配置

示例代码

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".

我希望带注释的代码片段不言自明.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读