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

添加spring-boot-starter-data-redis依赖后Spring Boot启动报错

问题根源分析

你遇到的问题核心是:引入spring-boot-starter-data-redis后,Spring Data同时检测到JPA和Redis两个数据模块,触发了严格仓库配置模式。在这种模式下,Spring Data不会自动推断每个Repository对应的存储类型,而com.atlassian.connect.spring.AtlassianHostRepository这个JPA仓库没有被明确分配给JPA模块,导致Spring无法创建它的Bean实例,最终引发依赖注入异常。

解决方案

你可以通过明确区分JPA和Redis Repository的扫描路径来解决这个问题,具体步骤如下:

  1. 创建一个数据配置类(或者直接在Spring Boot启动类上添加注解),分别指定JPA和Redis各自的Repository扫描范围:
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.data.redis.repository.config.EnableRedisRepositories;

@Configuration
// 明确让JPA模块扫描AtlassianHostRepository所在的包
@EnableJpaRepositories(basePackages = "com.atlassian.connect.spring")
// 替换成你项目中Redis Repository实际所在的包路径
@EnableRedisRepositories(basePackages = "your.project.redis.repositories")
public class DataRepositoryConfig {
}
  1. 如果你的项目暂时没有自定义Redis Repository,可以把@EnableRedisRepositories的basePackages设置为一个不存在的包(比如com.placeholder.redis),这样Redis模块不会扫描到任何Repository,同时也不会干扰JPA模块的正常工作。

  2. 重新启动项目,此时Spring Data会明确知道com.atlassian.connect.spring下的Repository由JPA模块处理,Redis模块负责指定包下的Repository,就能正常创建AtlassianHostRepository的Bean了。

补充说明

那些额外出现的日志信息正是Spring Data进入严格模式的直接提示:

Multiple Spring Data modules found, entering strict repository configuration mode!
Spring Data JPA - Could not safely identify store assignment for repository candidate interface com.atlassian.connect.spring.AtlassianHostRepository.

这说明Spring Data无法确定AtlassianHostRepository该归属哪个数据模块,所以没有为它创建Bean,这就是问题的核心所在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:41:08