ssm多資料來源多事物配置
阿新 • • 發佈:2019-01-23
最近有個需求是要為專案配置多個數據源,就此看了一下資料,做出了一個Demo,在此分享一下。
如何新增多個數據源?
專案的資料來源是在spring的配置檔案中配置的,同樣也是使用spring的事務來管理。資料來源配置如下
需要注意的是,跟普通的資料來源配置不一樣的是:在配置MapperScannerConfigurer的時候,多配置了一個annotationClass屬性,這個屬性的值是一個自定義的註解。配置這個屬性的意義在於,在掃描dao資料夾下面的介面和xml檔案的時候,通過識別這個註解來決定使用哪個資料來源。換句話說,就是決定使用資料來源,只需要在介面檔案加一個自定義的註解就可以了。
這個註解的作用只是為了標註這個介面是使用哪個資料來源,程式碼如下
例如:希望指定DemoMapper.xml這個對映檔案的資料來源,那麼只需要在DemoMapper對應的介面檔案中新增相應的資料來源註解(這裡指定的@TestEnvirRepository這個註解對應的資料來源)
這樣,資料來源配置就完成了,需要新增多一個數據源的時候,只需要copy一樣資料來源配置,然後自定義好相應的註解,並用註解來指定介面的資料來源就OK了。
如何為相應的service方法配置相應的事務去處理?
其實,很簡單,只需要在@Transactional註解後面新增屬性值就可以了,該屬性值的值為DataSourceTransactionManager類的id值