zoukankan      html  css  js  c++  java
  • 动态配置多数据源

    第一步:引入依赖dynamic-datasource-spring-boot-starter,兼容mybatis-plus
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
        <version>3.1.1</version>
    </dependency>
    第二步:yml配置,记得引入对应的数据库驱动依赖
    spring:
      datasource:
      dynamic:
        primary: master#设置默认的数据源或者数据源组,默认值即为master
        datasource:
            master:
                url:
                username: 
                password: 
                driver-class-name: 
            salve:
                url:
                username:
                password:
                driver-class-name:

     第三步,使用 @DS 切换数据源。

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

    1.没有@DS 默认数据源 2.@DS(
    "dsName") dsName可以为组名也可以为具体某个库的名称
    以上是简单的多数据源配置,接下来是一些动态配置的扩展:
    //添加数据源
    DynamicRoutingDataSource dynamicRoutingDataSource= SpringUtil.getBean(DynamicRoutingDataSource.class);
    HikariConfig config = new HikariConfig();
    config.setUsername("");
    config.setPassword("");
    config.setJdbcUrl("");
    config.setDriverClassName("");
    config.setPoolName(dataSourceName);
    //默认配置
    config.validate();
    //添加数据源
    dynamicRoutingDataSource.addDataSource(dataSourceName,new HikariDataSource(config));
    //切换默认数据源
    dynamicRoutingDataSource.setPrimary(dataSourceName);
    //删除数据源
    dynamicRoutingDataSource.removeDataSource(dataSource);
    可以通过修改其默认配置实现数据源的动态管理,更多方法可阅读DynamicRoutingDataSource类的源码部分
    以及其他一些关键类:
    DynamicDataSourceAutoConfiguration DynamicDataSourceCreator YmlDynamicDataSourceProvider
  • 相关阅读:
    关于c++中 get 和getline
    使用参数初始化表来实现对数据成员的初始化
    关于c++中运算符重载
    关于c++的友元函数
    C#控制台程序点击后暂停工作
    hhgame
    记字符编码与转义符的纠缠
    如何向非技术人(程序猿)解释SQL注入?
    记VS2013并行编译导致出错的解决过程
    记32位Oracle客户端登录报12560协议适配器错误的解决办法
  • 原文地址:https://www.cnblogs.com/nxjblog/p/14518274.html
Copyright © 2011-2022 走看看