springboot中怎么实现动态数据源
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,springboot中怎么实现动态数据源,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。/** * 作用:保存一个线程安全
千家信息网最后更新 2025年12月01日springboot中怎么实现动态数据源
springboot中怎么实现动态数据源,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
/** * 作用:保存一个线程安全的DatabaseType容器 */public class DatabaseContextHolder { private static final ThreadLocal contextHolder = new ThreadLocal<>(); /** * 当需要操作数据库前,也就是调用mapper.c/r/u/d方法前,可以调用该方法 * 该方法的作用是设置需要连接的数据库 * 由于是线程安全,如果一个新的controller连接请求,在操作数据库前没有显式的调用该方法,则get到的databaseType将会为null * 但这并不影响数据库的操作,因为在数据源的设置中已经设置了默认的数据源 * 当在同一个线程中(也就是本系统controller的同一个请求处理中),如果该方法被调用过 * 则后面的数据库操作,也就是mapper.c/r/u/d的时,get到的都是set好的数据源,除非再次显式的调用这个set方法改变数据源 */ public static void setDatabaseType(String type) { contextHolder.set(type); } /** * 当通过mapper.c/r/u/d方法等操作数据库时 * 该方法会自动被determineCurrentLookupKey方法调用到 * determineCurrentLookupKey是重写了Spring里的AbstractRoutingDataSource类的determineCurrentLookupKey方法 * * @see DynamicDataSource */ public static String getDatabaseType() { return contextHolder.get(); }}import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.jdbc.DataSourceBuilder;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Primary;import org.springframework.core.env.Environment;import javax.sql.DataSource;import java.util.HashMap;import java.util.Map;/** * 数据源工具类 */@Configuration@Slf4jpublic class DataSourceUtil { @Autowired private Environment env; //默认数据源 private DataSource defaultDataSource; //用户自定义数据源 private Map slaveDataSources = new HashMap<>(); /** * @see org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource */ @Bean @Primary public DynamicDataSource dataSource() throws Exception { initDefaultDataSource(); initSlaveDataSources(); Map 看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
数据
数据源
方法
数据库
配置
也就是
线程
动态
安全
作用
更多
帮助
清楚
内容
再次
多个
容器
对此
工具
文件
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
企业服务器核数
吞食天地下载软件开发
网络安全证书vivo手机
奉贤软件开发设计
山西省网络安全测评文件
简历软件开发经验
医保业务网络安全管理制度有哪些
mc手游租赁服务器能退吗
软件开发变量和参数区别
生产安全稳定服务器
软件开发培训班一般月薪多少
网络安全法民众反应
软件开发项目创意
松江区企业数据库销售价格大全
布瑞克农业数据库下载
2020公需课网络安全答案
网络安全小课堂观后感
php聊天消息存入数据库
二级数据库设计库类证书
查找数据库表空间路径
鸿蒙系统的网络安全
服务器安全狗还是网站安全狗
战地之王服务器怎么样
四川整机销售软件开发公司
数据库管理系统并发控制技术
桔子网络技术官网
学生管理系统网络服务器功能概述
怎么创建orace数据库
数据库调优是什么
山东十大服务器虚拟主机