Spring Boot DynamicDataSource 报错:找不到 DynamicRoutingDataSource Bean

在使用 Spring Boot 集成 Mybatis-Plus DynamicDataSource 时,你可能会遇到以下错误:

Field dynamicRoutingDataSource in org.ds.syn.config.DataBaseService required a bean of type 'com.baomidou.dynamic.datasource.DynamicRoutingDataSource' that could not be found.

这个错误提示表示 Spring 容器无法找到 com.baomidou.dynamic.datasource.DynamicRoutingDataSource 类型的 Bean 用于注入到 DataBaseService 类中的 dynamicRoutingDataSource 字段。

以下是解决此问题的几个步骤:

1. 检查依赖:

确保你的项目中正确引入了 DynamicDataSource 相关的依赖。在 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
    <version>最新版本</version>
</dependency>

2. 检查配置类:

确保你的项目中有一个配置类开启了 DynamicDataSource 的自动配置。可以使用 @EnableDynamicDataSource 注解来启用它。例如:

@Configuration
@EnableDynamicDataSource
public class MybatisPlusConfig {
    // ...
}

3. 检查类路径:

确保 com.baomidou.dynamic.datasource.DynamicRoutingDataSource 类在你的项目类路径中。你可以检查你的 IDE 或构建工具的配置,确保所有依赖都被正确加载。

4. 检查数据源配置:

确保你已正确配置了数据源。检查 application.propertiesapplication.yml 文件,确保至少配置了一个数据源。

例如,使用 application.yml 配置数据源:

spring:
  datasource:
    dynamic:
      primary: master
      datasource:
        master:
          url: jdbc:mysql://localhost:3306/db1
          username: root
          password: 123456
          driver-class-name: com.mysql.cj.jdbc.Driver
        slave:
          url: jdbc:mysql://localhost:3306/db2
          username: root
          password: 123456
          driver-class-name: com.mysql.cj.jdbc.Driver

5. 重启应用:

完成上述步骤后,请重新启动你的 Spring Boot 应用程序,并检查错误是否已解决。

如果问题仍然存在,请提供以下信息,以便我们更好地帮助你:

  • 你的 Spring Boot 版本
  • DynamicDataSource 的版本
  • 完整的错误堆栈信息
  • 数据源配置代码

希望这些信息能帮到你!

Spring Boot DynamicDataSource 报错:找不到 DynamicRoutingDataSource Bean

原文地址: https://www.cveoy.top/t/topic/WrH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录