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

使用Spring Boot+Spring Cache时必须显式定义CacheManager Bean吗?

解决Spring Boot中CacheManager Bean缺失问题

问题场景

已引入spring-boot-starter-cache依赖并添加@EnableCaching注解,但启动时仍报错:No qualifying bean of type 'org.springframework.cache.CacheManager' available。

排查与解决步骤

  • 校验依赖正确性
    确认Maven/Gradle中spring-boot-starter-cache依赖未被排除:
    Maven依赖示例:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-cache</artifactId>
    </dependency>
    

    可通过mvn dependency:tree(Maven)或./gradlew dependencies(Gradle)命令分析依赖树,确认缓存相关包已正常引入。

  • 检查@EnableCaching注解位置
    确保该注解添加在Spring Boot启动类或被Spring组件扫描到的配置类上,否则缓存自动配置逻辑不会触发。

  • 排查自动配置是否被禁用
    检查application.properties/application.yml中是否存在spring.autoconfigure.exclude配置,排除了org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration,若有则移除该排除项。

  • 排查自定义缓存配置冲突
    若项目中有自定义缓存配置类,需检查是否因手动配置Cache相关Bean但未正确生成CacheManager,导致默认自动配置被覆盖。可暂时注释自定义配置,测试默认配置是否生效。

  • 检查Spring Boot版本兼容性
    若使用较旧版本的Spring Boot,可能存在自动配置bug,建议升级至稳定版本(如2.7.x或3.x系列)。

  • 手动配置默认CacheManager
    若以上排查均无效,可显式配置ConcurrentMapCacheManager作为临时解决方案:

    @Configuration
    @EnableCaching
    public class CacheConfig {
        @Bean
        public CacheManager cacheManager() {
            return new ConcurrentMapCacheManager();
        }
    }
    

内容的提问来源于stack exchange,提问作者SetNug

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:46:16