亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

dynamic-datasource-spring-boot-starter使用

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

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

特性

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

約定

  • 本框架只做切換數(shù)據(jù)源這件核心的事情。
  • 配置文件所有以下劃線_分割的數(shù)據(jù)源首部即為組的名稱,相同組名稱的數(shù)據(jù)源會(huì)放在一個(gè)組下。
  • 切換數(shù)據(jù)源可以是組名,也可以是具體數(shù)據(jù)源名稱。組名則切換時(shí)采用負(fù)載均衡算法切換。
  • 默認(rèn)的數(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è)置默認(rèn)的數(shù)據(jù)源或者數(shù)據(jù)源組,默認(rèn)值即為master
      strict: false #設(shè)置嚴(yán)格模式,默認(rèn)false不啟動(dòng). 啟動(dòng)后在未匹配到指定數(shù)據(jù)源時(shí)候會(huì)拋出異常,不啟動(dòng)則使用默認(rèn)數(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)置加密,使用請查看詳細(xì)文檔
          username: ENC(xxxxx)
          password: ENC(xxxxx)
          driver-class-name: com.mysql.jdbc.Driver
          schema: db/schema.sql # 配置則生效,自動(dòng)初始化表結(jié)構(gòu)
          data: db/data.sql # 配置則生效,自動(dòng)初始化數(shù)據(jù)
          continue-on-error: true # 默認(rèn)true,初始化失敗是否繼續(xù)
          separator: ";" # sql默認(rèn)分號分隔符
          
       #......省略
       #以上會(huì)配置一個(gè)默認(rèn)庫master,一個(gè)組slave下有兩個(gè)子庫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可以注解在方法上或類上,同時(shí)存在就近原則 方法上注解 優(yōu)先于 類上注解

注解結(jié)果
沒有@DS默認(rèn)數(shù)據(jù)源
@DS("dsName")dsName可以為組名也可以為具體某個(gè)庫的名稱
@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é)

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

相關(guān)文章

  • 子線程任務(wù)發(fā)生異常時(shí)主線程事務(wù)回滾示例過程

    子線程任務(wù)發(fā)生異常時(shí)主線程事務(wù)回滾示例過程

    這篇文章主要為大家介紹了子線程任務(wù)發(fā)生了異常時(shí)主線程事務(wù)如何回滾的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Spring MVC---數(shù)據(jù)綁定和表單標(biāo)簽詳解

    Spring MVC---數(shù)據(jù)綁定和表單標(biāo)簽詳解

    本篇文章主要介紹了Spring MVC---數(shù)據(jù)綁定和表單標(biāo)簽詳解,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-01-01
  • Java LinkedList集合功能實(shí)例解析

    Java LinkedList集合功能實(shí)例解析

    這篇文章主要介紹了Java LinkedList集合功能實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Springmvc ajax跨域請求處理方法實(shí)例詳解

    Springmvc ajax跨域請求處理方法實(shí)例詳解

    這篇文章主要介紹了Springmvc ajax跨域請求處理方法實(shí)例詳解,需要的朋友可以參考下
    2017-10-10
  • java開源調(diào)度如何給xxljob加k8s執(zhí)行器

    java開源調(diào)度如何給xxljob加k8s執(zhí)行器

    這篇文章主要介紹了java開源調(diào)度如何給xxljob加一個(gè)k8s執(zhí)行器,?xxljob?在設(shè)計(jì)上,抽象出了執(zhí)行器的接口,所以實(shí)現(xiàn)一個(gè)語言的執(zhí)行器并不復(fù)雜,這里主要探索下,如何利用k8s的pod?的能力,使用?xxljob?調(diào)度?pod?運(yùn)行,實(shí)現(xiàn)一個(gè)通用的和語言無關(guān)的執(zhí)行器
    2022-02-02
  • 手把手帶你用java搞定青蛙跳臺(tái)階

    手把手帶你用java搞定青蛙跳臺(tái)階

    這篇文章主要給大家介紹了關(guān)于Java青蛙跳臺(tái)階問題的解決思路與代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • Java Spring處理循環(huán)依賴詳解

    Java Spring處理循環(huán)依賴詳解

    這篇文章主要介紹了Java中的Spring如何處理循環(huán)依賴,依賴指的是Bean與Bean之間的依賴關(guān)系,關(guān)于更多Spring?處理循環(huán)依賴的詳情,需要的朋友可以參考下面文章具體內(nèi)容
    2023-04-04
  • Spring Boot 靜態(tài)資源處理

    Spring Boot 靜態(tài)資源處理

    今天小編就為大家分享一篇關(guān)于Spring Boot 靜態(tài)資源處理,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • springboot使用spring-data-jpa操作MySQL數(shù)據(jù)庫

    springboot使用spring-data-jpa操作MySQL數(shù)據(jù)庫

    這篇文章主要介紹了springboot使用spring-data-jpa操作MySQL數(shù)據(jù)庫,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • java.lang.IllegalStateException異常解決

    java.lang.IllegalStateException異常解決

    異常是程序在執(zhí)行過程中遇到的錯(cuò)誤或異常情況,本文就來介紹一下java.lang.IllegalStateException異常解決,感興趣的可以了解一下
    2023-11-11

最新評論