当前位置: 首页 > news >正文

springboot mybatis-plus 多数据源配置(HikariCP)

1.导入依赖jar

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>42.2.5</version></dependency><dependency><groupId>net.postgis</groupId><artifactId>postgis-jdbc</artifactId><version>2.5.1</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.0</version></dependency><!--多数据源--><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>3.5.1</version></dependency>

2.配置nacos或者本地yml数据库信息

spring:# 配置数据源信息datasource:dynamic:#设置默认的数据源或者数据源组,默认值即为masterprimary: masterstrict: truedatasource:#这里采用了配置文件取值的方式,可以直接替换为数据库连接master:url: jdbc:postgresql://127.0.0.1:1921/check_dbusername: rootpassword: 123456driver-class-name: org.postgresql.Driver# 数据源2secondary:url: jdbc:postgresql://127.0.0.2:1921/check_dbusername: rootpassword: 123456driver-class-name: org.postgresql.Driverhikari:#连接池名pool-name: MyHikariCP#最小空闲数minimum-idle: 5#连接池最大数 默认是10maximum-pool-size: 100#空闲连接存活最大时间 默认:60000(10分钟)idle-timeout: 60000#此属性控制池中的最长生命周期,0: 表示无限生命周期,默认为1800000(30分钟)max-lifetime: 1800000#数据库连接超时时间默认30秒(30000)connection-timeout: 60000#此属性控制从池返回的链接默认自动提交行为,默认为trueauto-commit: true

3.代码使用说明:@DS注解

  注意: 1. @DS注解支持ServiceImpl,或者mapper上,暂不支持Service接口上的@DS注解

              2. 注解加到ServiceImpl类上 --> 类里的方法都使用此数据源

             3. 不加@DS注解,使用默认数据源,默认值master数据源(对于已有代码无感知使用mater库)

可以注解在方法上或类上,同时存在就近原则 【方法上注解】 优先于 【类上注解】

 此时使用secondary从库进行数据操作:

虽然service类使用了mater 主库,但是getReportByTaskId 方法使用了 @DS("secondary")  ,根据方法上使用的数据源优先级高于其他一切配置原则,该方法使用了从库进行数据操作。

3.验证结果:

一样的参数,数据源1,查询结果 :

一样的参数,数据源2,查询结果 :

http://www.lryc.cn/news/96235.html

相关文章:

  • 跃焱邵隼网站demo
  • 3. Spring 更简单的读取和存储对象(五大类注解 方法注解)
  • TypeScript基础篇 - 泛型
  • C++ 常量
  • 智安网络|实现数据安全:探索数据动态脱敏的落地策略
  • 全加器(多位)的实现
  • Clion开发stm32之微妙延迟(采用nop指令实现)
  • Spring MVC -- 获取参数(普通对象+JSON对象+URL地址参数+文件+Cookie/Session/Header)
  • Langchain 的 Conversation summary memory
  • Safari 查看 http 请求
  • kafka权限控制功能
  • 公司内部重要文件如何加密防止泄露?
  • C语言或Java-x型图案
  • FTP客户端登录报错:Login failed
  • Linux相关指令(上)
  • 电压放大器在管道缺陷检测中应用有哪些
  • NLP(六十二)HuggingFace中的Datasets使用
  • Windows下基于VSCode搭建C++开发环境(包含整合MinGW64、CMake的详细流程)
  • springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端
  • MySQL学习-第二部分
  • TortoiseGit 入门指南17:使用子模块
  • 谷粒商城篇章5 ---- P173-P192 ---- 检索服务【分布式高级篇二】
  • N位分频器的实现
  • 华为OD真题--分苹果-带答案
  • 【前端实习评审】对小说详情模块更新的后端接口压力流程进行了人群优化
  • Factorization Machines(论文笔记)
  • Qt开发(5)——使用QTimer定时触发槽函数
  • 2023年JAVA最新面试题
  • (四)RabbitMQ高级特性(消费端限流、利用限流实现不公平分发、消息存活时间、优先级队列
  • Vue如何配置eslint