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

基于SpringBoot+Druid实现多数据源:baomidou多数据源

前言

本博客姊妹篇

  • 基于SpringBoot+Druid实现多数据源:原生注解式
  • 基于SpringBoot+Druid实现多数据源:注解+编程式
  • 基于SpringBoot+Druid实现多数据源:baomidou多数据源

一、功能描述

  • 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。
  • 支持数据库敏感配置信息 加密 ENC()。
  • 支持每个数据库独立初始化表结构schema和数据库database。
  • 支持无数据源启动,支持懒加载数据源(需要的时候再创建连接)。
  • 支持 自定义注解 ,需继承DS(3.2.0+)。
  • 提供并简化对Druid,HikariCp,BeeCp,Dbcp2的快速集成。
  • 提供对Mybatis-Plus,Quartz,ShardingJdbc,P6sy,Jndi等组件的集成方案。
  • 提供 自定义数据源来源 方案(如全从数据库加载)。
  • 提供项目启动后 动态增加移除数据源 方案。
  • 提供Mybatis环境下的 纯读写分离 方案。
  • 提供使用 spel动态参数 解析数据源方案。内置spel,session,header,支持自定义。
  • 支持 多层数据源嵌套切换 。(ServiceA >>> ServiceB >>> ServiceC)。
  • 提供 **基于seata的分布式事务方案。
  • 提供 本地多数据源事务方案。

更多查看官方:https://baomidou.com/pages/a61e1b/#dynamic-datasource

二、代码实现

2.1 配置

# spring配置
spring:# 数据源配置datasource:type: com.alibaba.druid.pool.DruidDataSourcedynamic:primary: masterstrict: falsedatasource:master:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/boot_codegen?useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&useSSL=falseusername: rootpassword: rootslave:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/boot_business?useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&useSSL=falseusername: rootpassword: rootdruid:initial-size: 10min-idle: 10max-active: 100max-wait: 60000time-between-eviction-runs-millis: 60000min-evictable-idle-time-millis: 300000validation-query: select 1test-while-idle: truetest-on-borrow: falsetest-on-return: falsepool-prepared-statements: truemax-pool-prepared-statement-per-connection-size: 20druid:web-stat-filter:enabled: trueurl-pattern: /*exclusions: '*.js,*.css,*.gif,*.png,*.jpg,*.ico,/druid/*'stat-view-servlet:enabled: trueurl-pattern: /druid/*login-username: adminlogin-password: 123456filter:stat:enabled: truelog-slow-sql: trueslow-sql-millis: 1000merge-sql: truewall:enabled: trueconfig:multi-statement-allow: true

2.2 使用

package com.qiangesoft.datasourcembpd.service.impl;import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qiangesoft.datasourcembpd.entity.BcgDataSource;
import com.qiangesoft.datasourcembpd.mapper.BcgDataSourceMapper;
import com.qiangesoft.datasourcembpd.service.IBcgDataSourceService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;import java.util.List;/*** <p>* 数据源 服务实现类* </p>** @author qiangesoft* @since 2024-03-13*/
@Slf4j
@RequiredArgsConstructor
@Service
public class BcgBcgDataSourceServiceImpl extends ServiceImpl<BcgDataSourceMapper, BcgDataSource> implements IBcgDataSourceService {@DS("slave")@Overridepublic List<BcgDataSource> changeDataSourceByAnnotation() {return this.list();}
}
http://www.lryc.cn/news/318075.html

相关文章:

  • Redis开发规范与性能优化(二)
  • 我们是否生活在一个超大型生物的大脑之中?——对多元宇宙观与生命存在形式的哲学探讨
  • 【Python数据结构与判断7/7】数据结构小结
  • 探讨:MySQL和PostgreSQL谁更火
  • hbase和es的选取 hbase与es结合
  • GoLang:云原生时代致力于构建高性能服务器的后端语言
  • 高频面试必备(Java研发岗),一线互联网架构师设计思想解读开源框架
  • React——react 的基本使用
  • Unity资源热更新----AssetBundle
  • bootstrap企业网站前端模板
  • 分类预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据分类预测
  • 软考77-上午题-【面向对象技术3-设计模式】-创建型设计模式02
  • 微博热搜榜单采集,微博热搜榜单爬虫,微博热搜榜单解析,完整代码(话题榜+热搜榜+文娱榜和要闻榜)
  • 有趣的前端知识(三)
  • How to install teams in ubuntu
  • macOS14.4安装FFmpeg及编译FFmpeg源码
  • 基于Springboot+vue+mybatis框架的建材运营管理系统的设计与实现【附项目源码】分享
  • 前端路由跳转bug
  • 二 centos 7.9 磁盘挂载
  • 二叉搜索树、B-树、B+树
  • Docker简介与安装
  • Swift 单元测试
  • 有来团队后台项目-解析10
  • 【自动化】在C#中创建和配置串口对象SerialPort
  • 突破编程_C++_设计模式(访问者模式)
  • C语言入门到精通之练习53:矩阵交换行问题(附带源码)
  • Python白练-2统计下列5行字符串中字符出现的频数
  • 深入理解DHCP服务:网络地址的自动化分配
  • Java高级编程—泛型
  • Exam in MAC [容斥]