通过 Spring 引导配置 Hazelcast application.yml
Configuring Hazelcast via Spring Boot application.yml
我能够使用 hazelcast.xml 文件在我的 Spring 引导应用程序中使用 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 的参考,但找到了 none。我想做的事情是不可能的吗?
application.yml
文件是一种将配置属性传递给 Spring Boot.目前,没有一种自动的方式将它们从一个传递到另一个。
因此,您尝试执行的操作不会按原样运行。也许这值得您在 https://github.com/hazelcast/hazelcast or 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>
然后 "all" 你需要做的就是让你的代码创建一个像这样的 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 文件中。
我遇到了同样的问题并为此添加了配置 class:
@Configuration
@EnableConfigurationProperties(HazelcastConfig::class)
@ConfigurationProperties(prefix = "hazelcast", ignoreUnknownFields = false)
@Primary
class HazelcastConfig: Config()
然后我把这个放在 application.yml:
hazelcast:
group_config:
name: hazelcast-cluster
password: hazelcast-cluster
network_config:
join:
multicast_config:
enabled: false
kubernetes_config:
enabled: false
(是的,我知道这是一个老问题,但根据 Google,它是最受欢迎的)
我能够使用 hazelcast.xml 文件在我的 Spring 引导应用程序中使用 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 的参考,但找到了 none。我想做的事情是不可能的吗?
application.yml
文件是一种将配置属性传递给 Spring Boot.目前,没有一种自动的方式将它们从一个传递到另一个。
因此,您尝试执行的操作不会按原样运行。也许这值得您在 https://github.com/hazelcast/hazelcast or https://github.com/spring-projects/spring-boot 上记录一个问题以解决它。
同时,如果您有 application.yml
和 属性,例如
hazelcast:
group:
name: "stack.overflow"
然后这将作为 hazelcast.group.name
属性.
你有一个 hazelcast.xml
包含
<group>
<name>${hazelcast.group.name}</name>
</group>
然后 "all" 你需要做的就是让你的代码创建一个像这样的 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 文件中。
我遇到了同样的问题并为此添加了配置 class:
@Configuration
@EnableConfigurationProperties(HazelcastConfig::class)
@ConfigurationProperties(prefix = "hazelcast", ignoreUnknownFields = false)
@Primary
class HazelcastConfig: Config()
然后我把这个放在 application.yml:
hazelcast:
group_config:
name: hazelcast-cluster
password: hazelcast-cluster
network_config:
join:
multicast_config:
enabled: false
kubernetes_config:
enabled: false
(是的,我知道这是一个老问题,但根据 Google,它是最受欢迎的)