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
  • 相关阅读:
    OFDM系统中频域同步技术及FPGA实现
    SystemVerilog的挑战和机遇
    基础知识要牢固..复习复习,再复习
    样式在.net下测试不成功.附解决办法
    学习.net2.0的网站
    08年又快结束了..抱怨下!~
    今天去面试.net开发,感想
    在b/s开发中经常用到的javaScript技术
    淘宝"新版"首页
    Ajax技术简单入门
  • 原文地址:https://www.cnblogs.com/nxjblog/p/14518274.html
Copyright © 2011-2022 走看看