小工具知识网

当前位置: 首页 > 行业知识 > SpringBoot使用@DS配置 多数据源 【mybatisplus druid datasource mysql】

行业知识

SpringBoot使用@DS配置 多数据源 【mybatisplus druid datasource mysql】

2026-11-12 11:54:26 来源:互联网转载

项目最近需要使用多数据源,不同的mapper分别读取不同的链接,本项目使用了mybatisplus druid 来配置多数据源,基于mysql数据库。

目录

1.引入依赖

​2.配置文件 application.yaml

3.Mapper中使用@DS切换数据源

4.使用@DS的注意事项


1.引入依赖

                    com.baomidou            dynamic-datasource-spring-boot-starter            3.3.6                            com.baomidou            mybatis-plus-boot-starter            3.5.1                            com.alibaba            druid-spring-boot-starter            1.2.6                            mysql            mysql-connector-java            8.0.32                            org.springframework.boot            spring-boot-starter-jdbc        

2.配置文件 application.yaml

spring:  # 配置数据源信息  datasource:    dynamic:      # 设置默认的数据源或者数据源组      primary: master      # 严格匹配数据源,默认false,true未匹配到指定数据源时抛异常,false使用默认数据源      strict: false      datasource:        master:          url: jdbc:mysql://localhost:3306/master?serverTimezone=GMT%2B8&characterEncoding=utf-8&userSSL=false          driver-class-name: com.mysql.cj.jdbc.Driver          username: root          password: root        slave:          url: jdbc:mysql://localhost:3307/slave?serverTimezone=GMT%2B8&characterEncoding=utf-8&userSSL=false          driver-class-name: com.mysql.cj.jdbc.Driver          username: root          password: root    

3.Mapper中使用@DS切换数据源

import com.baomidou.dynamic.datasource.annotation.DS;import com.gzmpc.print.entity.Template;import org.apache.ibatis.annotations.Mapper;@Mapperpublic interface TestMapper {@DS("master")public List getMaster(String parm);@DS("slave")public List getSlave(String parm);}

@DS也可在mapper层、service层使用,默认的master可以不用加@DS

4.使用@DS的注意事项

在事务方法内调用@DS注解的方法,@DS注解同样不生效,原因是spring只能拦截到最外层方法的@Transactional注解,此时加载该事务的数据源,在事务方法内即使调用了@DS注解的方法,获取的是外层事务的数据源,导致@DS失效。

上一篇:服务器域名怎么维护的?

下一篇:谷歌浏览器下载指南