2012-01-25 39 views
4

我正在使用標準的MongoDB Java驅動程序來滾動我自己的DAO。我知道我的所有DAO都可以共享相同的Mongo實例,但是,如果我訪問同一數據庫的所有DAO共享相同的數據庫對象,或者是否有充分的理由請求新的數據庫對象或每個對象?我的MongoDB DAO應該請求唯一的DB對象嗎?

謝謝!

回答

2

如果事實證明您可以使用Mongo類,DB類和DBCollection類,則可以使用共享實例。無論你想從設計的角度來看,取決於你。我肯定使用Mongo實例作爲單身人士,因爲他們的體重相對較重(擁有自己的線程池等)

1

共享Mongo對象的「好理由」是內置連接池。如果在DAO之間共享你的Mongo對象實例是不實際的,那麼這是一個很好的理由(在我看來)創建新的實例。如果它是實用的,那麼你應該分享它。

請記住,當您使用Mongo實例完成時,您應該使用.close(),以防止留下打開的連接。

+0

Mongo實例是一個相對較重的對象,因此如果DAO很短,我不會使用每個DAO的實例住(如請求範圍) –

+0

@RemonvanVliet我同意。最好的做法是讓你可以分享的單身人士。 –

+0

感謝您的回覆!我知道我應該共享Mongo對象,但是我想知道DB對象是否應該共享。我認爲雷蒙回答說。感謝關閉close()的提示。 – HolySamosa

相關問題