农妇山泉一亩田 发表于 2025-11-5 17:55:36

springboot 设置多数据源以及动态切换数据源

场景

我们springboot项目,通常会有多个数据库,比方mysql,vertica,postgresql等等数据库,通常我们须要动态切换使用我们想要的数据库,这时间就须要设置多数据源了
多数据源特性

支持多数据库范例:比方,同时毗连 MySQL、PostgreSQL 和 Vertica 等差异数据库,在应用中可以大概根据差异的业务需求切换到对应的数据库。
动态数据源切换:根据哀求、业务逻辑或用户上下文,动态切换数据源(比方,按用户哀求切换到差异的数据库),而不须要重启应用。
数据库隔离:差异业务模块使用差异的数据源,确保它们的数据完全隔离。比方,一个模块使用 MySQL,另一个模块使用 Vertica。
高可用和容错:通过设置多个数据源,可以在主数据库发生故障时自动切换到备用数据库,提升体系的高可用性。
实现

基于springboot3.4设置
引入依靠的方式

添加依靠

      <!--动态数据源-->
      <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>4.3.0</version>
      </dependency>
设置YML文件

spring:
datasource:
    dynamic:
      # 设置默认的数据源或者数据源组,默认值即为 master
      primary: master
      datasource:
      master:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
          username: root
          password: 123456
      slave:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/eshopping?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
          username: root
          password: 123456
调用数据库

直接再类上加上@DS(“master”)注解便是毗连的master数据库
@Service
@DS("master")
public class LoginServiceImpl implements LoginService{
   
   
题目

博主这里遇见了题目,由于我设置了JWT+SpringSecurity,这里报错了,信息如下,找不到数据源,料想应该是和JwtAuthenticationFilter和数据源的加载序次有关
2025-01-21 21:43:37.097 ERROR --- [         main] o.s.b.web.embedded.tomcat.TomcatStarter: Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'jwtAuthenticationFilter': Unsatisfied dependency expressed through field 'userDetailsService': Error creating bean with name 'customUserDetailsService': Unsatisfied dependency expressed through field 'loginMapper': Error creating bean with name 'loginMapper' defined in file : Cannot resolve reference
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: springboot 设置多数据源以及动态切换数据源