Spring配置多資料來源多事物配置詳解

2021-09-11 02:15:32 字數 963 閱讀 8250

實際應用場景有個專案在配置spring事務時,使用了@transactional註解,但這個專案使用了多個資料來源,而事務註解只對預設的是第乙個事務

1)定義與事務管理器對應的事務通知 

2)配置需要攔截的方法呼叫切面 

3)將切入點連線到相應的事務

在spring2.5之前,@transactional註解確實不支援多資料來源,但是spring3為其增加了value屬性配置,可以指定當前事務通知對應的事務管理器

1、配置事務註解驅動、每個資料來源對應的事務管理器,並定義「限定符」

2、在需要事務的地方,指定「限定符」

public class transactionalservice

@transactional("transmanage2")

public void dosomething()

}3、如果不指定「限定符」,將預設使用「transationmanager」命名對應的事務管理器

在配置檔案中,預設情況下,會自動使用名稱為transactionmanager的事務管理器。所以,如果定義的事務管理器名稱為transactionmanager,那麼就可以直接使用

@transactional的屬性

這裡寫描述

配置優化

可以自定義乙個繫結到特定事務管理器的註解,然後直接使用這個自定義的註解進行標識:

@target()

@retention(retentionpolicy.runtime)

@transactional("transmanage1")

public @inte***ce customertransactional

在service**中使用:

...//使用名為transmanage1的事務管理器

@customertransactional

public void addtest(string str)

Spring配置多資料來源多事物配置詳解

實際應用場景有個專案在配置spring事務時,使用了 transactional註解,但這個專案使用了多個資料來源,而事務註解只對預設的是第乙個事務 1 定義與事務管理器對應的事務通知 2 配置需要攔截的方法呼叫切面 3 將切入點連線到相應的事務 在spring2.5之前,transactional...

Spring多資料來源 多事務

因專案業務需要同時連線兩個資料庫,同時需要事務支援,參考網上資料試過實現spring介面來自動切換資料來源,但是事務只有乙個資料來源可以使用,故採用如下方式配置,掃瞄所有map檔案,通過類上方註解區分使用哪個資料來源,通過在service方法中配置 transactional value 事務名 來...

spring多資料來源配置

前段時間由於公司專案需求,需要多資料來源的支援,苦b折騰了兩天程式猿,話不多說,直接擼碼。classpath jdbc.properties select 1 true select 1 true org.hibernate.dialect.mysqldialect false update tru...