使用SpringData报错: xxxxxRepository的Bean不存在

项目场景:

在用SpringDataMongoDB提示找不到Repository的Bean

尝试过的方法:

  1. 把构造器注入换成@autowired,换成@resource,没用
  2. 在SpringBootApplication主类中添加@ComponentScan,然后在里面添加参数,没用
  3. 添加@EnableJpaRepositories,没用

解决方案:

发现是依赖的问题,原本的依赖是

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb</artifactId>
        </dependency>

后来换成了

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

成功了

问题原因(GPT生成)

spring-boot-starter-data-mongodbspring-data-mongodb 这两个依赖在 Spring Boot 和 Spring Data MongoDB 的应用中扮演着不同的角色。

  1. spring-boot-starter-data-mongodb

    • 这是一个 “starter” 包,专为 Spring Boot 应用设计。Spring Boot 提供了多个 starter 依赖,旨在简化依赖管理并自动配置应用。使用这个 starter 依赖,可以快速集成和启动 MongoDB 数据库的操作。
    • 它包括了 spring-data-mongodb 依赖,同时还可能包括其他必要的库,例如 MongoDB 的 Java 驱动程序,以及 Spring Boot 特有的自动配置支持。
    • 使用这个 starter,你将自动获得 Spring Boot 的自动配置功能,这意味着很多 MongoDB 的配置(如数据库连接)会根据 application.properties 或 application.yml 文件中的配置自动设置。
  2. spring-data-mongodb

    • 这是 Spring Data MongoDB 项目的核心库,提供了访问 MongoDB 数据库的基本功能。
    • 这个库支持通过 repository 抽象来操作 MongoDB,可以进行创建、查询、更新和删除操作,并支持自定义查询方法。
    • 它本身不包含 Spring Boot 的特定集成或自动配置,主要关注于数据访问层的功能。

总的来说,如果你在使用 Spring Boot 开发应用,推荐使用 spring-boot-starter-data-mongodb,因为它包含了 spring-data-mongodb,并提供了额外的自动配置支持,使得集成更加简单。如果你不是在 Spring Boot 环境下工作,而是需要在一个已经存在的 Spring 应用中集成 MongoDB,或者需要更细粒度的控制,那么可能会直接使用 spring-data-mongodb

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值