【Dynamic-datasource】Springboot多数据源整合

引入依赖:

<dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>3.5.0</version>
</dependency>

整体pom文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.2</version><relativePath/></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>2023_demo</name><description>2023_demo</description><properties><java.version>11</java.version></properties><dependencies><!-- starter start --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency><!-- starter end --><!-- mybatis-plus自动生成 start --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.1</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.4.1</version></dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.3</version></dependency><!-- mybatis-plus自动生成 end --><!-- 动态数据源 start --><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>3.5.0</version></dependency><!-- 动态数据源 end --><!-- aop切面 start --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><!-- aop切面 end--><!-- 数据库连接池 start --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.9</version></dependency><!-- 数据库连接池 end --><!-- mysql start --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!-- mysql end --><!-- swagger(openapi+knife) start --><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-ui</artifactId><version>1.6.11</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-springdoc-ui</artifactId><version>3.0.3</version></dependency><!-- swagger(openapi+knife) end --><!-- 工具 start --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.5.1</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!-- excel导出 --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>17.0</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.68</version></dependency><!-- 工具 end --><!-- doc\pdf\excel互转 start --><dependency><groupId>e-iceblue</groupId><artifactId>spire.pdf.free</artifactId><version>5.1.0</version></dependency><dependency><groupId>e-iceblue</groupId><artifactId>spire.doc</artifactId><version>11.8.1</version></dependency><!-- doc\pdf\excel互转 end --></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build><repositories><repository><id>aliyun-repo</id><name>aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url></repository><repository><id>com.e-iceblue</id><url>https://repo.e-iceblue.cn/repository/maven-public/</url></repository></repositories></project>

yml文件:

spring:profiles:active: devjackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT+8logging:level:com.example.demo.system.mapper: DEBUGcom.example.demo.bi.mapper: DEBUGmybatis-plus:mapper-locations: classpath*:mapper/**/*.xml  #指定MyBatis映射的SQL文件目录global-config:db-config:#主键类型  AUTO:"数据库ID自增", INPUT:"用户输入ID",ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";id-type: auto#驼峰下划线转换table-underline: trueconfiguration:map-underscore-to-camel-case: truecache-enabled: false

-dev.yml如下:

server:port: 18080spring:datasource:dynamic:primary: master  #设置默认的数据源或者数据源组,默认值即为masterstrict: false    #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源druid:filters: stat,slf4j#配置初始化大小、最小、最大线程数initial-size: 10min-idle: 10#CPU核数+1,也可以大些但不要超过20,数据库加锁时连接过多性能下降max-active: 20#最大等待时间max-wait: 60000#两次尝试间隔时间#    timeBetweenEvictionRunsMillis: 600000#保持长连接keep-alive: true#配置一个连接在池中最大空间时间,单位是毫秒min-evictable-idle-time-millis: 600000#空闲时测试连接testWhileIdle: true#测试用SQLvalidation-query: select 1 from dualdatasource:master:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/local?serverTimezone=GMT%2B8&characterEncoding=utf-8username: rootpassword: 123456angel:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/angel?serverTimezone=GMT%2B8&characterEncoding=utf-8username: rootpassword: 123456springdoc:swagger-ui:enabled: truedoc-expansion: noneapi-docs:enabled: true

在serivceImpl实现类上添加注解:@DS

启动类上添加:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

启动类如下:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class},scanBasePackages={"com.example.demo.*"})
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

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

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

相关文章

激发创新,助力研究:CogVLM,强大且开源的视觉语言模型亮相

项目设计集合&#xff08;人工智能方向&#xff09;&#xff1a;助力新人快速实战掌握技能、自主完成项目设计升级&#xff0c;提升自身的硬实力&#xff08;不仅限NLP、知识图谱、计算机视觉等领域&#xff09;&#xff1a;汇总有意义的项目设计集合&#xff0c;助力新人快速实…

4.3 Windows驱动开发:监控进程与线程对象操作

在内核中&#xff0c;可以使用ObRegisterCallbacks这个内核回调函数来实现监控进程和线程对象操作。通过注册一个OB_CALLBACK_REGISTRATION回调结构体&#xff0c;可以指定所需的回调函数和回调的监控类型。这个回调结构体包含了回调函数和监控的对象类型&#xff0c;还有一个A…

周赛372(正难则反、枚举+贪心、异或位运算、离线+单调栈)

文章目录 周赛372[2937. 使三个字符串相等](https://leetcode.cn/problems/make-three-strings-equal/)模拟&#xff08;正难则反&#xff09; [2938. 区分黑球与白球](https://leetcode.cn/problems/separate-black-and-white-balls/)枚举 贪心 [2939. 最大异或乘积](https:/…

【双指针】:Leetcode1089.复写零

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本专栏是关于各种算法的解析&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数据结构专栏&…

鸿蒙APP外包开发上线流程

鸿蒙系统的上线流程可能会根据具体的版本和平台要求而略有不同。在进行上线之前&#xff0c;开发人员应该详细了解并遵循鸿蒙生态系统的相关规定和要求。鸿蒙&#xff08;HarmonyOS&#xff09;应用的上线流程通常包括以下步骤&#xff0c;希望对大家有所帮助。北京木奇移动技术…

OpenCV入门6——图像基本变换

文章目录 图像的放大与缩小缩放算法题目放大 图像的翻转图像的旋转仿射变换之图像平移仿射变换之获取变换矩阵仿射变换之变换矩阵之二OpenCV透视变换 图像的放大与缩小 缩放算法 # -*- coding: utf-8 -*- import cv2 import numpy as npimg cv2.imread(E://pic//4.jpg) # (600…

centos7离线安装docker

本文适用于无法直接上网的centos7/el7 离线安装docker 1. 下载安装包 官网下载安装包&#xff1a; https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ 需要下载的包有&#xff1a; containerd.io docker-ce docker-ce-cli docker-ce-rootless-extras dock…

瞬态抑制二极管(TVS管)特性及电路应用?|深圳比创达电子EMC

瞬态抑制二极管简称TVS管(Transient Voltage Suppressor) 一、TVS管特性 瞬态抑制二极管是在稳压二极管的工艺上发展起来的,一种用途广泛的高效能保护器件。当TVS二极管的两极受到反向瞬态高能量冲击时&#xff0c;它能以皮秒量级的速度&#xff0c;将其两极间的高阻抗变为低…

qt和window抓包程序

1.思路 使用原始套接字&#xff0c;将网卡设置为混杂模式&#xff0c;监听该网卡的数据。 2. 了解协议封包和协议层 下图是tcp封包详细过程 数据包传输情况 在TCP/IP协议栈中的每一层为了能够正确解析出上层的数据包&#xff0c;从而使用一些“协议类型”来标记&#xff0c;详…

LeetCode538. Convert BST to Greater Tree

文章目录 一、题目二、题解 一、题目 Given the root of a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus the sum of all keys greater than the original key in BST. As a remin…

高压放大器使用方法介绍

高压放大器是一种用于放大高压信号的电子设备&#xff0c;常用于科学研究、工业应用和医疗设备等领域。它可以将低电压信号放大到较高的电压水平&#xff0c;以满足特定应用的需求。 使用高压放大器需要注意以下几个方面&#xff1a; 1.了解设备规格&#xff1a;在使用高压放大…

ubuntu 22.04版本修改时区的操作方法

修改时区比较简单&#xff0c;就是timedatectl set-timezone America/Los_Angeles加systemctl restart systemd-timesyncd&#xff0c;并且服务器重启后时区没有变回去还是修改后的 示例&#xff1a; 目前时区是UTC 0时区伦敦时间&#xff0c;想改成太平洋时区(Pacific Time&a…

《视觉SLAM十四讲》-- 建图

11 建图 11.1 概述 &#xff08;1&#xff09;地图的几类用处&#xff1a; 定位&#xff1a;导航&#xff1a;机器人在地图中进行路径规划&#xff1b;避障重建交互&#xff1a;人与地图之间的互动 &#xff08;2&#xff09;几类地图 稀疏地图稠密地图语义地图 11.2 单目…

解决Jira导出csv最大限度是1000的问题

JIRA为了防止过多影响性能&#xff0c; 设置了导出CSV的上线为1000&#xff0c;影响了搜索结果导出以及RestAPI。 可以通过以下配置参数修改此限制&#xff1a; 通过JIRA管理界面的"高级设置 “设置以下参数 系统管理 > 系统 > 一般设置>高级设置找到 jira.sea…

char*与char[]的区别

之前在给函数传形参时&#xff0c;char*和char[]我是混着用的&#xff0c;当时感觉它俩用起来没啥差别&#xff0c;就草率地把它俩混为一谈。 但实际上&#xff0c;这俩本质是不同的&#xff0c;只是在作为形参的时候可以互换使用。我这篇博客就是来记录下它俩的区别。 现在我定…

house of husk

利用说明 适用版本: glibc2.23 -- now 利用场景: UAF/大堆块/存在格式化字符的使用 利用条件: 能使 __printf_function_table 处非空 可以往 __printf_arginfo_table 处可写入地址 效果与限制: 可以劫持程序执行流, 但是参数不可控. 利用方式: 劫持 __printf_function_…

034、test

之——全纪录 目录 之——全纪录 杂谈 正文 1.下载处理数据 2.数据集概览 3.构建自定义dataset 4.初始化网络 5.训练 杂谈 综合方法试一下。 leaves 1.下载处理数据 从官网下载数据集&#xff1a;Classify Leaves | Kaggle 解压后有一个图片集&#xff0c;一个提交示…

信息系统项目管理师-范围管理论文提纲

快速导航 1.信息系统项目管理师-项目整合管理 2.信息系统项目管理师-项目范围管理 3.信息系统项目管理师-项目进度管理 4.信息系统项目管理师-项目成本管理 5.信息系统项目管理师-项目质量管理 6.信息系统项目管理师-项目资源管理 7.信息系统项目管理师-项目沟通管理 8.信息系…

只有cpu的时候加载模型

只有cpu的时候加载模型 checkpoint torch.load(model_path, map_locationtorch.device(‘cpu’))

Codeforces Round 910 (Div. 2) --- B-E 补题记录

B - Milena and Admirer Problem - B - Codeforces 题目大意&#xff1a; 现在给出一个无序序列&#xff0c;你可以使用任意次操作将这个无序序列修改为不递减序列&#xff0c;操作为你可以使用两个数a和b来替换ai&#xff0c;序列就变为了 ai-1&#xff0c; a&#xff0c;…