我能够使用hazelcast.xml文件在我的Spring Boot应用程序中使用Hazelcast缓存。但是,该应用程序有多个配置文件,我试图避免管理多个hazelcast.xml文件。我想配置application.yml中的所有选项。如果我正确理解the documentation,我应该可以在我的application.yml中执行以下操作,对吗?
hazelcast:
client:
config:
network:
join:
tcp-ip:
member:
- 1.2.3.4
- 9.8.7.6
map:
name: user-details
max-size: 1000
eviction-policy: LRU
eviction-percentage: 10
time-to-live-seconds: 900
除非它不起作用。我已经尝试通过application.yml找到其他参考配置Hazelcast,但没有找到。是我试图做的不可能吗?
答案 0 :(得分:1)
application.yml
文件是一种将配置属性传递给Spring Boot的方法。目前,还没有一种自动方式将这些方法从一个传递到另一个。
所以你要做的事情不会按原样运作。也许值得您在https://github.com/hazelcast/hazelcast或https://github.com/spring-projects/spring-boot上记录问题,以便解决问题。
与此同时,如果您的application.yml
具有
hazelcast:
group:
name: "stack.overflow"
然后这将作为hazelcast.group.name
属性放入Spring的环境中。
你有hazelcast.xml
包含
<group>
<name>${hazelcast.group.name}</name>
</group>
然后“所有”你需要做的就是让代码像这样创建一个Config
@Bean
@Bean
public Config config(Environment environment) {
Properties props = new Properties();
props.put("hazelcast.group.name", environment.getProperty("hazelcast.group.name"));
return new ClasspathXmlConfig("hazelcast.xml", props);
}
将属性从YML文件传递到XML文件。
答案 1 :(得分:1)
我遇到了同样的问题,为此添加了一个配置类:
hazelcast:
group_config:
name: hazelcast-cluster
password: hazelcast-cluster
network_config:
join:
multicast_config:
enabled: false
kubernetes_config:
enabled: false
然后我将其放入application.yml:
groupID
(是的,我知道这是一个老问题,但是根据Google来说,它是最受欢迎的问题)