91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

動態數據源dynamic-datasource-spring-boot-starter怎么使用

發布時間:2023-03-21 11:02:15 來源:億速云 閱讀:310 作者:iii 欄目:開發技術

這篇文章主要講解了“動態數據源dynamic-datasource-spring-boot-starter怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“動態數據源dynamic-datasource-spring-boot-starter怎么使用”吧!

dynamic-datasource-spring-boot-starter使用

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

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

特性

  • 支持數據源分組,適用于多種場景 純粹多庫 讀寫分離 一主多從 混合模式。

  • 支持數據庫敏感配置信息加密ENC()。

  • 支持每個數據庫獨立初始化表結構schema和數據庫database。

  • 支持自定義注解,需繼承DS(3.2.0+)。

  • 提供對Druid,Mybatis-Plus,P6sy,Jndi的快速集成。

  • 簡化Druid和HikariCp配置,提供全局參數配置。配置一次,全局通用。

  • 提供自定義數據源來源方案。

  • 提供項目啟動后動態增加移除數據源方案。

  • 提供Mybatis環境下的純讀寫分離方案。

  • 提供使用spel動態參數解析數據源方案。內置spel,session,header,支持自定義。

  • 支持多層數據源嵌套切換。(ServiceA >>> ServiceB >>> ServiceC)。

  • 提供對shiro,sharding-jdbc,quartz等第三方庫集成的方案,注意事項和示例。

  • 提供**基于seata的分布式事務方案。**附:不支持原生spring事務。

  • 提供**本地多數據源事務方案。**附:不支持原生spring事務。

約定

  • 本框架只做切換數據源這件核心的事情。

  • 配置文件所有以下劃線_分割的數據源首部即為組的名稱,相同組名稱的數據源會放在一個組下。

  • 切換數據源可以是組名,也可以是具體數據源名稱。組名則切換時采用負載均衡算法切換。

  • 默認的數據源名稱為master,你可以通過spring.datasource.dynamic.primary修改。

  • 方法上的注解優先于類上注解。

使用方法

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

動態數據源dynamic-datasource-spring-boot-starter怎么使用

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

配置數據源。

spring:
  datasource:
    dynamic:
      primary: master #設置默認的數據源或者數據源組,默認值即為master
      strict: false #設置嚴格模式,默認false不啟動. 啟動后在未匹配到指定數據源時候會拋出異常,不啟動則使用默認數據源.
      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) # 內置加密,使用請查看詳細文檔
          username: ENC(xxxxx)
          password: ENC(xxxxx)
          driver-class-name: com.mysql.jdbc.Driver
          schema: db/schema.sql # 配置則生效,自動初始化表結構
          data: db/data.sql # 配置則生效,自動初始化數據
          continue-on-error: true # 默認true,初始化失敗是否繼續
          separator: ";" # sql默認分號分隔符
          
       #......省略
       #以上會配置一個默認庫master,一個組slave下有兩個子庫slave_1,slave_2
# 多主多從                      純粹多庫(記得設置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:                              h3:                                   oracle_2:

使用**@DS**切換數據源。

@DS可以注解在方法上或類上,同時存在就近原則 方法上注解 優先于 類上注解

注解結果
沒有@DS默認數據源
@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");
  }
}

感謝各位的閱讀,以上就是“動態數據源dynamic-datasource-spring-boot-starter怎么使用”的內容了,經過本文的學習后,相信大家對動態數據源dynamic-datasource-spring-boot-starter怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汝州市| 通河县| 汝城县| 邮箱| 西林县| 陵水| 津南区| 吉木乃县| 灵山县| 土默特左旗| 玉田县| 涞水县| 咸阳市| 昌邑市| 玉环县| 兴义市| 和平区| 固安县| 武平县| 衡山县| 尼勒克县| 苏州市| 崇仁县| 田林县| 六盘水市| 托克逊县| 专栏| 隆林| 石楼县| 福安市| 定兴县| 彩票| 达孜县| 万宁市| 武夷山市| 汤原县| 兰坪| 中江县| 海安县| 托克逊县| 荆州市|