簡體   English   中英

春季,休眠:DAO類:是否始終使用同一對象?

[英]Spring, Hibernate: DAO-Class: Using always the same object?

我與Spring 3和Hibernate 3.6一起開發Web應用程序。

我有一個DAO類,並在其中創建了一個xml文件ONE bean(名為“ dao1”)。 每個需要訪問數據庫的類都將注入此實例。 總是相同的道對象(scope = singleton)

現在,我想知道這是否是使用DAO的推薦方法。 在其他類中注入總是不同的實例會更好,如果是,為什么? 將DAO拆分為始終包含某些dao方法(也許特定於一個表)的不同類是否還會更好?

使用上面提到的結構有什么缺點嗎?

謝謝! :-)

使用Hibernate / JPA,Dao需要一個新的會話/實體管理器。 但是spring通過注入每次定位新會話的代理來解決這個問題。 因此,擁有singleton DAO是正確的選擇。

需要說明的是-如果您的DAO除了注入的依賴項之外沒有任何狀態(即沒有實例字段),則可以放心地將其設為單例。 否則-不。

根據經驗,打針是要問自己。

此組件/ bean /對象中是否有任何狀態?

如果每個呼叫都有某種狀態需要處理,則您需要更改范圍或生命周期。 如果不是,則應將其配置為單例。

通常,在DAO類中,沒有狀態。 或不應該。 狀態應在持久性目標(數據庫)中。

因此,可以很肯定地說,在這種情況下,將其配置為Singleton很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM