DS註解的使用,動態資料來源,事務

2021-10-14 15:17:00 字數 1605 閱讀 1033

有時,在乙個專案中會用到多資料來源,此時可以使用苞公尺豆的dynamic-datasource-spring-boot-starter

首先,引入jar包:

>

>

com.baomidougroupid

>

>

dynamic-datasource-spring-boot-starterartifactid

>

>

2.5.4version

>

dependency

>

spring:

datasource:

url: jdbc:mysql://localhost:3306/test2?servertimezone=utc&useunicode=true&characterencoding=utf8

driver-class-name: com.mysql.cj.jdbc.driver

username: root

password: root

dynamic:

primary: master

datasource:

master:

url: jdbc:mysql://localhost:3306/test2?servertimezone=utc&useunicode=true&characterencoding=utf8

driver-class-name: com.mysql.cj.jdbc.driver

username: root

password: root

sub:

url: jdbc:mysql://localhost:3306/test2?servertimezone=utc&useunicode=true&characterencoding=utf8

driver-class-name: com.mysql.cj.jdbc.driver

username: root1

password: root1

其中配置了兩個資料來源,mastersub,其中選擇master作為預設資料來源(對應primary配置);

若想使用sub作為部分**的資料來源,可在serviceimpl做如下配置:

@ds

("sub"

)@service

public

class

userserviceimpl

extends

serviceimpl

implements

userservice

在使用@ds註解時,有如下注意事項:

不能使用事務,否則資料來源不會切換,使用的還是第一次載入的資料來源;

第一次載入資料來源之後,第二次、第三次…操作其它資料來源,如果資料來源不存在,使用的還是第一次載入的資料來源;

資料來源名稱不要包含下劃線,否則不能切換。

DS 註解多資料來源執行緒問題

簡單記錄一下 在使用ds註解更換多資料來源的時候,使用了執行緒來處理資料。service層使用了 ds註解引入資料來源。方法中直接使用了執行緒池執行緒,然後再呼叫方法,然後發現資料來源其實並沒有引入。資料表找不到。然後就把查詢方法放出執行緒,先查詢,處理的時候再放入執行緒方可。log.info sy...

spring多資料來源動態切換及事務

1 使用了spring的aop思想,實現了動態資料來源的切換。2 spring的事務管理,是基於資料來源的,所以如果要實現動態資料來源切換,而且在同乙個資料來源中保證事務是起作用的話,就需要注意二者的順序問題,即 在事物起作用之前就要把資料來源切換回來。舉乙個例子 web開發常見是三層結構 cont...

動態資料來源 mysql

前言 最近開發時遇到這樣乙個場景 在一段定時任務中需要將a資料庫中查詢的結果處理後,然後插入b資料庫,這是就考慮到用動態資料來源,在這裡記錄一下配置過程,僅供參考 一 在spring.xml新增配置 二 新增相應的工具類 public inte ce datasourceentry 資料來源切換實現...