實際應用場景有個專案在配置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...