輕鬆實現SpringBoot實現多資料來源與事物處理

2021-09-12 15:29:21 字數 1420 閱讀 1821

歡迎進入我的部落格,樂於分享是一種美德

首先啟動類所在的包一定要放在其他的類的父包中,這樣容易讓啟動類掃瞄到其他的類,不需要多餘的配置了

.事物管理

事物原理

事物分類

單事物處理(單資料來源) 同乙個專案 連線乙個資料庫 直接在需要加註解的方法 上面加上乙個註解 @transactional 類:indexcotroller

多事物處理(多資料來源) 同乙個專案 連線多個資料庫 datesource1 datesource2…

多資料來源解決思路:

相當於多個jar包 同時加入到同乙個專案中去 每乙個jar包 負責乙個資料來源(資料庫)

對比:

多資料來源 多個dao/多個service/多個datasource

步驟:1.資料庫建立兩個庫(可以多個庫),分別建立一張表(可以多張表)

2.domain:分別建立兩個實體類對應資料庫的資料表(多張表就有多個實體類)

注意:為了簡單,資料庫建立不同的資料庫 但資料表字段是相同的,所以我建立乙個實體類user

3. 分為兩個資料來源(對應兩個資料庫),所以分別建立兩個dao和service(test1和test2)

service--對應的是@service,分別對應的是不同資料庫和資料表,一定要注意

4.在配置檔案中建立兩個資料來源

spring.datasource.test1

spring.datasource.test2

5. 獲取資料庫的資料來源--datasource包

@configuration:把當前類裝配到spring容器中

1.datasource @bean() 資料來源

2.sqlsessionfactory @bean() sqlsession

3.datasourcetransactionmanager @bean(「test1transactionmanager」) 事物

裝配到spring容器中

1.datasource @bean() 資料來源

2.sqlsessionfactory @bean() sqlsession

3.datasourcetransactionmanager @bean(「test2transactionmanager」) 事物

裝配到spring容器中

6.馬上大功告成了,最後的controller層,直接使用@autowired匯入資料來源,就可以下一步操作了

多資料來源事物

在service1層 新增@transactional(transactionmanager="test1transactionmanager")

在service2層 新增@transactional(transactionmanager="test2transactionmanager")

一一對應就好。

Spring Boot中實現登入校驗簡單實現

在實際系統中開發時候通常會有許可權的一些校驗來保證系統的安全性,其中登入校驗就是常見的一種方式。如果乙個系統中的部分介面控制登入後才能訪問,如何實現呢,可以通過 的方式來實現。新增 類 註冊 並配置哪些介面需要進行攔截 step one 登入 註冊 configuration public clas...

SpringBoot下RabbitMq實現定時任務

定時任務場景 訂單下單15分鐘未付款自動關閉 延遲任務實現原理圖如下 根據上圖看出我們需要兩個佇列 一是死信佇列,訊息在裡面度過tll時間,二是處理佇列,訊息度過tll時間後進入該佇列 兩個交換機和路由 一是用來將訊息送入死信佇列,二是將訊息從死信佇列送到處理佇列 但是交換機其實可以用同乙個,也就是...

SpringBoot下RabbitMq實現定時任務

定時任務場景 訂單下單15分鐘未付款自動關閉 延遲任務實現原理圖如下 根據上圖看出我們需要兩個佇列 一是死信佇列,訊息在裡面度過tll時間,二是處理佇列,訊息度過tll時間後進入該佇列 兩個交換機和路由 一是用來將訊息送入死信佇列,二是將訊息從死信佇列送到處理佇列 但是交換機其實可以用同乙個,也就是...