You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:57:04