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

Spring Boot集成MongoDB与JDBC时Repository Bean无法找到问题求助

问题解决:同时集成MongoDB与JDBC(DB2)时Repository Bean找不到的问题

核心原因

当项目中同时引入多个Spring Data模块(如MongoDB和JDBC)时,Spring Boot的自动配置无法自动区分不同模块的Repository接口,导致JDBC对应的Repository没有被代理生成Bean实例。此外,你的Repository接口内部嵌套了实体Record类,默认扫描规则不会识别这类嵌套结构。

解决方案

在Spring Boot启动类上显式添加两个注解,分别指定MongoDB和JDBC的Repository扫描范围,并开启嵌套实体识别:

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jdbc.repository.config.EnableJdbcRepositories;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;

@SpringBootApplication
// 配置MongoDB Repository扫描
@EnableMongoRepositories(
        basePackages = "com.example.demo.adapter",
        considerNestedRepositories = true
)
// 配置JDBC Repository扫描
@EnableJdbcRepositories(
        basePackages = "com.example.demo.adapter",
        considerNestedRepositories = true
)
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

关键说明

  • @EnableMongoRepositories:明确启用MongoDB的Repository扫描,指定你的Mongo Repository所在包路径;considerNestedRepositories = true允许识别接口内部嵌套的实体类(即你的Kunde Record)。
  • @EnableJdbcRepositories:同理,启用JDBC的Repository扫描,指定JDBC Repository所在包路径,开启嵌套实体识别以支持Abrechnungsdaten Record。

通过显式配置这两个注解,Spring就能正确为不同模块的Repository生成代理Bean,解决依赖注入时找不到Bean的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:50:38