動態配置多數據源


第一步:引入依賴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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM