2012-01-25 33 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

相关问题