springboot中怎么实现动态数据源
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,springboot中怎么实现动态数据源,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。/** * 作用:保存一个线程安全
千家信息网最后更新 2025年02月07日springboot中怎么实现动态数据源
springboot中怎么实现动态数据源,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
/** * 作用:保存一个线程安全的DatabaseType容器 */public class DatabaseContextHolder { private static final ThreadLocalcontextHolder = 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安全错误
数据库的锁怎样保障安全
网络安全风险评估软件
服务器邮件删除后还能查到吗
网络安全监测方法
数据库的导出csv
灌云无忧网络技术品质保障
网络安全法 电子签名
幻想世界 服务器
预编译 数据库
广州贝比互联网科技有限公司
许昌网络安全系统价格
检测自己电脑是否有数据库
web前端软件开发包
天津plc编程服务器云服务器
论文集网络技术
软件开发上市公司电话
数据库保存在哪里
未来教育网络技术资料
使用jsp和数据库构建购物车
德州网络安全微课
进销存系统数据库的创建与管理
数据库中筛选酶基因的缺点
中国工商银行软件开发中心视频
科信网络安全检查的作用
山东服务器公司有哪些虚拟主机
济南时代智囊网络技术 领英
设计购物网站的数据库
使用jsp和数据库构建购物车
100周年网络安全应急预案
普陀区网络技术服务
北京专业软件开发口碑推荐