Spring Boot集成Hazelcast时MaxSizeConfig无法解析为类型求助
问题原因
你使用的Spring Boot 2.5.3版本默认管理的Hazelcast依赖为5.x+版本,MaxSizeConfig类在Hazelcast 4.x版本后就被正式移除,相关的缓存容量、驱逐策略配置逻辑已经合并到EvictionConfig类中,因此编译器会提示无法解析该类型。
解决方案
有两种可选方案,你可以根据自身需求选择:
方案1:适配高版本Hazelcast修改配置代码
直接调整缓存配置的写法,使用EvictionConfig替代原有的MaxSizeConfig即可,修改后的完整配置类代码如下:
package com.stephen.springweb.productrestapi.config; import org.springframework.context.annotation.Bean; import com.hazelcast.config.Config; import com.hazelcast.config.EvictionConfig; import com.hazelcast.config.EvictionPolicy; import com.hazelcast.config.MapConfig; import com.hazelcast.config.MaxSizePolicy; import org.springframework.context.annotation.Configuration; @Configuration public class ProductCacheConfig { @Bean public Config cacheConfig() { // 构造EvictionConfig承载原MaxSizeConfig和驱逐策略配置 EvictionConfig evictionConfig = new EvictionConfig() .setSize(200) .setMaxSizePolicy(MaxSizePolicy.FREE_HEAP_SIZE) .setEvictionPolicy(EvictionPolicy.LRU); return new Config() .setInstanceName("hazel-instance") .addMapConfig(new MapConfig() .setName("product-cache") .setTimeToLiveSeconds(3000) .setEvictionConfig(evictionConfig) ); } }
方案2:指定Hazelcast版本兼容旧写法
如果你想保留教程中的MaxSizeConfig写法,可以在pom.xml的properties节点中手动指定4.x版本的Hazelcast,覆盖Spring Boot默认的版本管理:
<properties> <java.version>8</java.version> <!-- 新增配置指定Hazelcast版本,4.x系列仍支持MaxSizeConfig --> <hazelcast.version>4.2.7</hazelcast.version> </properties>
修改后刷新Maven依赖,重启IDE清除缓存即可正常编译。
内容的提问来源于stack exchange,提问作者Stephen Agbenu
相关产品推荐
相关产品推荐

