![](/img/trans.png)
[英]How does Spring Batch manage transactions (with possibly multiple datasources)?
[英]How to dynamically manage multiple datasources
其他主題中已經涵蓋了類似的主題,但我找不到解決問題的明確方法。
我們想要實現的是設計一個 web 應用程序,它能夠:
目前我們有一個 DAO 管理器 object,它能夠讀取數據源配置文件並實例化多個 session 工廠,將它們保存在 map 中。 每個 session 工廠都是使用包含正確 hibernate 映射類(每個數據庫模式不同)的配置創建的。 此外,我們有多個 DAO 接口及其實現,用於訪問“他們的數據庫”。
此時,我們需要一種方法從 DAO 管理器獲取特定的 DAO object,其中包含附加的正確 session 工廠,所有這些都基於用戶請求(基本上是來自上述服務的調用,包含數據源 ID 或自定義數據源對象) .
理想情況下,服務層應該使用 DAO 管理器來獲取基於數據源 ID(例如)的 DAO object,而不用擔心它的實際實現:DAO 管理器會通過創建正確的 DAO object 並注入它來處理它正確的 session 工廠,基於數據源 id。
我的問題是:
這是一個很好的方法嗎?
這可能是唯一可能的方法。 所以,是的。
如何使用 Spring 在 DAO 管理器中為每個 DAO 接口動態注入多個 DAO 實現?
動態的? 我以為你想在啟動時這樣做。 如果是這樣,只需提供一個帶有列表或數組的訪問器:
public void setMyDaos(List<Mydao> daos){
this.daos = daos;
}
一旦創建了 session 工廠,有沒有辦法讓 Spring 處理它們,就像我通常在 application-context.xml 中進行依賴注入一樣?
這個好難我會說你可能不得不將你的 sessionFactory bean 存儲在scope=session
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.