最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解讀動態(tài)數(shù)據(jù)源dynamic-datasource-spring-boot-starter使用問題

 更新時間:2023年03月21日 09:24:12   作者:zhangjunli  
這篇文章主要介紹了解讀動態(tài)數(shù)據(jù)源dynamic-datasource-spring-boot-starter使用問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

dynamic-datasource-spring-boot-starter使用

dynamic-datasource-spring-boot-starter ??是一個基于springboot的快速集成多數(shù)據(jù)源的啟動器。

其支持Jdk 1.7+, SpringBoot 1.5.x 和 2.x.x。

特性

  • 支持數(shù)據(jù)源分組,適用于多種場景 純粹多庫 讀寫分離 一主多從 混合模式。
  • 支持數(shù)據(jù)庫敏感配置信息加密ENC()。
  • 支持每個數(shù)據(jù)庫獨立初始化表結(jié)構(gòu)schema和數(shù)據(jù)庫database。
  • 支持自定義注解,需繼承DS(3.2.0+)。
  • 提供對Druid,Mybatis-Plus,P6sy,Jndi的快速集成。
  • 簡化Druid和HikariCp配置,提供全局參數(shù)配置。配置一次,全局通用。
  • 提供自定義數(shù)據(jù)源來源方案。
  • 提供項目啟動后動態(tài)增加移除數(shù)據(jù)源方案。
  • 提供Mybatis環(huán)境下的純讀寫分離方案。
  • 提供使用spel動態(tài)參數(shù)解析數(shù)據(jù)源方案。內(nèi)置spel,session,header,支持自定義。
  • 支持多層數(shù)據(jù)源嵌套切換。(ServiceA >>> ServiceB >>> ServiceC)。
  • 提供對shiro,sharding-jdbc,quartz等第三方庫集成的方案,注意事項和示例。
  • 提供**基于seata的分布式事務(wù)方案。**附:不支持原生spring事務(wù)。
  • 提供**本地多數(shù)據(jù)源事務(wù)方案。**附:不支持原生spring事務(wù)。

約定

  • 本框架只做切換數(shù)據(jù)源這件核心的事情。
  • 配置文件所有以下劃線_分割的數(shù)據(jù)源首部即為組的名稱,相同組名稱的數(shù)據(jù)源會放在一個組下。
  • 切換數(shù)據(jù)源可以是組名,也可以是具體數(shù)據(jù)源名稱。組名則切換時采用負載均衡算法切換。
  • 默認的數(shù)據(jù)源名稱為master,你可以通過spring.datasource.dynamic.primary修改。
  • 方法上的注解優(yōu)先于類上注解。

使用方法

引入dynamic-datasource-spring-boot-starter。

<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
  <version>${version}</version>
</dependency>
 

配置數(shù)據(jù)源。

spring:
  datasource:
    dynamic:
      primary: master #設(shè)置默認的數(shù)據(jù)源或者數(shù)據(jù)源組,默認值即為master
      strict: false #設(shè)置嚴格模式,默認false不啟動. 啟動后在未匹配到指定數(shù)據(jù)源時候會拋出異常,不啟動則使用默認數(shù)據(jù)源.
      datasource:
        master:
          url: jdbc:mysql://xx.xx.xx.xx:3306/dynamic
          username: root
          password: 123456
          driver-class-name: com.mysql.jdbc.Driver # 3.2.0開始支持SPI可省略此配置
        slave_1:
          url: jdbc:mysql://xx.xx.xx.xx:3307/dynamic
          username: root
          password: 123456
          driver-class-name: com.mysql.jdbc.Driver
        slave_2:
          url: ENC(xxxxx) # 內(nèi)置加密,使用請查看詳細文檔
          username: ENC(xxxxx)
          password: ENC(xxxxx)
          driver-class-name: com.mysql.jdbc.Driver
          schema: db/schema.sql # 配置則生效,自動初始化表結(jié)構(gòu)
          data: db/data.sql # 配置則生效,自動初始化數(shù)據(jù)
          continue-on-error: true # 默認true,初始化失敗是否繼續(xù)
          separator: ";" # sql默認分號分隔符
          
       #......省略
       #以上會配置一個默認庫master,一個組slave下有兩個子庫slave_1,slave_2
 
# 多主多從                      純粹多庫(記得設(shè)置primary)                   混合配置
spring:                               spring:                               spring:
  datasource:                           datasource:                           datasource:
    dynamic:                              dynamic:                              dynamic:
      datasource:                           datasource:                           datasource:
        master_1:                             mysql:                                master:
        master_2:                             oracle:                               slave_1:
        slave_1:                              sqlserver:                            slave_2:
        slave_2:                              postgresql:                           oracle_1:
        slave_3:                              h2:                                   oracle_2:
 

使用**@DS**切換數(shù)據(jù)源。

@DS可以注解在方法上或類上,同時存在就近原則 方法上注解 優(yōu)先于 類上注解。

注解結(jié)果
沒有@DS默認數(shù)據(jù)源
@DS("dsName")dsName可以為組名也可以為具體某個庫的名稱
@Service
@DS("slave")
public class UserServiceImpl implements UserService {
 
  @Autowired
  private JdbcTemplate jdbcTemplate;
 
  public List selectAll() {
    return  jdbcTemplate.queryForList("select * from user");
  }
  
  @Override
  @DS("slave_1")
  public List selectByCondition() {
    return  jdbcTemplate.queryForList("select * from user where age >10");
  }
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SWT(JFace)小制作 FileBrowser文件瀏覽

    SWT(JFace)小制作 FileBrowser文件瀏覽

    SWT(JFace)小制作 FileBrowser文件瀏覽
    2009-06-06
  • 利用Maven添加工程版本信息及時間戳

    利用Maven添加工程版本信息及時間戳

    這篇文章主要介紹了利用Maven添加工程版本信息及時間戳方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • mybatis參數(shù)String與Integer類型的判斷方式

    mybatis參數(shù)String與Integer類型的判斷方式

    這篇文章主要介紹了mybatis參數(shù)String與Integer類型的判斷方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java中Spring的創(chuàng)建和使用詳解

    Java中Spring的創(chuàng)建和使用詳解

    這篇文章主要介紹了Java中Spring的創(chuàng)建和使用詳解,Spring 是?個包含了眾多?具?法的 IoC 容器,既然是容器那么 它就具備兩個最基本的功能,將對象存儲到容器中,從容器中將對象取出來,需要的朋友可以參考下
    2023-08-08
  • 詳解分別用Kotlin和java寫RecyclerView的示例

    詳解分別用Kotlin和java寫RecyclerView的示例

    本篇文章主要介紹了詳解分別用Kotlin和java寫RecyclerView的示例,詳解分別用Kotlin和java寫RecyclerView的示例
    2017-12-12
  • SpringBoot3集成swagger文檔的使用方法

    SpringBoot3集成swagger文檔的使用方法

    本文介紹了Swagger的誕生背景、主要功能以及如何在Spring Boot 3中集成Swagger文檔,Swagger可以幫助自動生成API文檔,實現(xiàn)與代碼同步,并提供交互式測試功能,使用方法包括導(dǎo)入依賴、配置文檔、使用常見注解以及訪問生成的Swagger UI和文檔,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • spring-boot @Component和@Bean的區(qū)別詳解

    spring-boot @Component和@Bean的區(qū)別詳解

    這篇文章主要介紹了spring-boot @Component和@Bean的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • springboot @JsonSerialize的使用講解

    springboot @JsonSerialize的使用講解

    這篇文章主要介紹了springboot @JsonSerialize的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Mybatis中resultMap標簽和sql標簽的設(shè)置方式

    Mybatis中resultMap標簽和sql標簽的設(shè)置方式

    這篇文章主要介紹了Mybatis中resultMap標簽和sql標簽的設(shè)置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java?基于Hutool實現(xiàn)DES加解密示例詳解

    Java?基于Hutool實現(xiàn)DES加解密示例詳解

    這篇文章主要介紹了Java基于Hutool實現(xiàn)DES加解密,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08

最新評論

中超| 万宁市| 祁门县| 枞阳县| 阜南县| 双江| 佛坪县| 德化县| 东源县| 民勤县| 三江| 扎赉特旗| 黔西县| 安康市| 高陵县| 加查县| 江陵县| 桂东县| 宁津县| 丰城市| 墨玉县| 米林县| 牡丹江市| 泸溪县| 普洱| 呼伦贝尔市| 正镶白旗| 信阳市| 怀仁县| 五家渠市| 雷州市| 祁门县| 宣恩县| 德格县| 麻阳| 维西| 额济纳旗| 五大连池市| 湘西| 阿城市| 孝感市|