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
  • 相关阅读:
    又到泰山了
    有趣的数字
    关于Servlet/JSP里"/"的用法
    [WS]一个简单的WSDL文档(下)
    30天敏捷结果(28):撰写你的个人使命
    推荐:敏捷个人应该订阅的博客
    30天敏捷结果(27):做些有重要意义的事
    30天敏捷结果(29):找到适合你发展的环境
    COM+的配置:痛并快乐着
    30天敏捷结果(22):设计你的一天
  • 原文地址:https://www.cnblogs.com/nxjblog/p/14518274.html
Copyright © 2011-2022 走看看