我的MongoDB DAO应该请求唯一的DB对象吗?

时间:2012-01-25 15:12:29

标签: java mongodb dao mongo-java

我正在使用标准的MongoDB Java驱动程序来滚动我自己的DAO。我知道我的所有DAO都可以共享同一个Mongo实例,但是我访问同一个数据库的所有DAO是否共享相同的数据库对象,或者是否有充分的理由要求新的DB对象或每个?

谢谢!

2 个答案:

答案 0 :(得分:2)

如果证明对您有用,可以使用Mongo类,DB类和DBCollection类的共享实例。从设计的角度来看,您是否想要取决于您自己。我肯定会使用Mongo实例作为单例,因为它们的权重相对较大(有自己的线程池等)。

答案 1 :(得分:1)

共享Mongo对象的“好理由”是内置连接池。如果在DAO之间共享Mongo对象实例是不切实际的,那么(在我看来)创建新实例是一个很好的理由。如果它是实用的,那么你应该分享它。

请记住,当您使用Mongo实例时,应使用.close(),以防止保持打开连接。