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

news2024/11/27 9:48:23

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

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

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

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

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

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

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

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

3.验证结果:

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/778154.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iOS--虚拟内存

参考文章 要想了解什么是VM Regions&#xff0c;就得先了解什么是虚拟内存。当我们向系统申请内存时&#xff0c;系统并不会给你返回物理内存的地址&#xff0c;而是给你一个虚拟内存地址。每个进程都拥有相同大小的虚拟地址空间&#xff0c;对于32位的进程&#xff0c;可以拥有…

【N32L40X】学习笔记06-串口dma空闲中断+dma接收数据

串口dma 8 个可独立配置的 DMA 通道。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VchCudlf-1689952378831)(./picture/dma.png)] 实例代码 串口dma使用的是串口绑定方式实现串口的dma数据传输 bsp_uart_dma.h #ifndef _BSP_UART_DMA_H_ #def…

STM32(HAL库)驱动(1.44寸)TFT-LCD彩屏

目录 1、简介 2、CubeMX初始化配置 2.1 基础配置 2.1.1 SYS配置 2.1.2 RCC配置 2.2 屏幕引脚配置 2.3 项目生成 3、KEIL端程序整合 3.1 LCD驱动添加 3.2 函数修改 3.2.1 lcd.h修改 3.2.2 lcd_innit.h 修改 3.2.3 lcd.c修改 3.2.4 lcd_inut.c修改 3.3 主函数代码 3.3…

网络安全(零基础)自学

一、网络安全基础知识 1.计算机基础知识 了解了计算机的硬件、软件、操作系统和网络结构等基础知识&#xff0c;可以帮助您更好地理解网络安全的概念和技术。 2.网络基础知识 了解了网络的结构、协议、服务和安全问题&#xff0c;可以帮助您更好地解决网络安全的原理和技术…

Spring Cloud Alibaba 集成 Skywalking 链路追踪

Spring Cloud Alibaba 集成 Skywalking 链路追踪 简介 skywalking 是一个国产开源框架&#xff0c;2015 年由吴晟开源 &#xff0c; 2017 年加入 Apache 孵化器。skywalking 是分布式系统的应用程序性能监视工具&#xff0c;专为微服务、云原生架构和基于容器&#xff08;Doc…

前端 | ( 十)HTML5简介及相关新增属性 | 尚硅谷前端html+css零基础教程2023最新

学习来源&#xff1a;尚硅谷前端htmlcss零基础教程&#xff0c;2023最新前端开发html5css3视频 文章目录 &#x1f4da;HTML5简介&#x1f407;什么是HTML5&#x1f407;HTML5 优势&#x1f407;HTML5兼容性 &#x1f4da;新增语义化标签&#x1f407;新增布局标签&#x1f407…

怎样原生制作lis的CentOS容器镜像

本文介绍从一个空白的裸机CentOS自己构造检验允许的docker环境。来达到运行环境的高度定制&#xff0c;而不是只能依赖VS或者微软或者数据库厂商提供的镜像当做基础制作。更容易理解基础原理。最终输出产物为lisnew.tar&#xff0c;一个开箱即用的lis运行环境。 制作的整个过程…

自动驾驶分级和技术架构

标题SAE 和 NHTSA自动驾驶分级 当前全球汽车行业中两个最权威的分级系统由美国国家公路交通安全管理局&#xff08;NHTSA&#xff09;和国际自动化工程师协会(SAE)提出。2013年&#xff0c;NHTSA将驾驶自动化的描述分为5个层级。2014年1月&#xff0c;SAE制定J3016自动驾驶分级…

【深度学习-神经网络架构-通俗易懂的入门课程】

文章目录 深度学习与AI的关系机器学习的流程机器学习的核心以及问题深度学习要解决的问题模型如何搭建&#xff1f;特征如何提取&#xff1f;为什么要深度学习&#xff1f; 深度学习的应用深度学习的问题计算机视觉任务分类与检索如何实现分类 神经网络基础线性函数损失函数防止…

Golang 中的可测试示例函数(Example Function)详解

Golang 可测试示例含函数 (Example Function) 示例函数类似于单元测试函数&#xff0c;但没有 *testing 类型的参数。编写示例函数也是很容易的&#xff1a; 创建对应的测试文件&#xff1a;在 Go 项目的源代码目录下创建一个新的文件&#xff08;和被测代码文件在同一个包&…

Java 知识合集 | 多线程与并发

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…

C++初阶之内存分布

C/C内存管理 C/C内存分布C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free1.malloc和free2.calloc3.realloc4.常见的动态内存错误 C内存管理方式1.new/delete操作内置类型2.new和delete操作自定义类型3.new和malloc使用上的区别 operator new与operator delete函…

设计模式: 23重设计模式

设计模式 设计模式概述设计模式的概念设计模式的组成23种设计模式设计模式与软件架构设计模式分类创建型设计模式结构型设计模式行为型设计模式 设计模式概述 在20世纪70年代&#xff0c;Christopher Alexander 提出了城市建筑的模式&#xff0c;他认为&#xff1a;模式是描述…

Windows的内部结构API

Windows内部结构 由于 Windows 机器构成了企业基础设施的大部分&#xff0c;红队需要了解 Windows 的内部结构以及如何&#xff08;滥用&#xff09;使用它们。在制作攻击性工具或漏洞利用时&#xff0c;红队可以滥用这些来帮助规避和利用。 进程 进程维护并代表程序的执行&…

Abaqus 中的步进、增量、迭代和尝试概念 硕迪科技

Abaqus 中的步进、增量、迭代和尝试等可能会在概念上让 Abaqus 初学者感到困惑。清楚地了解分析步骤、荷载增量和迭代之间的区别非常重要。在这篇文章中快速了解 Abaqus 步骤和增量迭代。 在ABAQUS中&#xff0c;步进增量迭代是解决非线性问题的一种数值计算方法。这种方法通常…

【分布式】1、CAP 理论 | 一致性、可用性、分区容忍性

文章目录 一、CAP 理论1.1 Consistency 一致性1.2 Availbility 可用性1.3 Partition Tolerance 分区容忍性1.4 CAP 应用1.4.1 CP1.4.2 AP 二、CAP 实践2.1 ACID2.2 BASE 一、CAP 理论 是 2002 年证明的定理&#xff0c;原文&#xff0c;内容如下&#xff1a; In a distributed…

Day52: 84.柱状图中最大的矩形

84.柱状图中最大的矩形 84. 柱状图中最大的矩形 - 力扣&#xff08;LeetCode&#xff09; 思路 本题是要找每个柱子左右两边第一个小于该柱子的柱子&#xff0c;所以从栈头&#xff08;元素从栈头弹出&#xff09;到栈底的顺序是从大到小的顺序。例&#xff1a; 三种情况&a…

安装 VNC 服务器-iTOPRK3588开发板

开发板联网以后&#xff0c;在串口终端输入以下命令&#xff1a; sudo apt-get update sudo apt-get upgrade sudo apt-get install tightvncserver apt-get install xfonts-base 安装完毕之后&#xff0c;在串口终端输入以下命令运行 vnc tightvncserver 然后要求设置密…

算法专题:投票法

文章目录 169.多数元素&#xff08;找频率>n/2&#xff0c;且多数元素一定存在&#xff09;思路完整版补充&#xff1a;注意点 面试题 17.10. 主要元素&#xff08;找频率>n/2&#xff0c;但多数元素不一定存在&#xff09;思路完整版 229.多数元素Ⅱ&#xff08;找频率&…

“智能文件批量改名工具:轻松去除文件名中的特殊符号“

您是否曾经为繁杂的文件命名而感到困扰&#xff1f;特殊符号导致文件名混乱难辨&#xff0c;给您的工作和学习带来不便&#xff1f;现在&#xff0c;我们的智能文件批量改名工具为您解决这一难题&#xff01; 首先&#xff0c;我们要进行文件批量改名高手主页面&#xff0c;并…