【发布时间】:2012-01-25 15:12:29
【问题描述】:
我正在使用标准的 MongoDB Java 驱动程序来推出我自己的 DAO。我知道我的所有 DAO 都可以共享同一个 Mongo 实例,但是我所有访问同一个数据库的 DAO 是否应该共享同一个 DB 对象,或者是否有充分的理由请求一个新的 DB 对象或每个?
谢谢!
【问题讨论】:
标签: java mongodb dao mongo-java
我正在使用标准的 MongoDB Java 驱动程序来推出我自己的 DAO。我知道我的所有 DAO 都可以共享同一个 Mongo 实例,但是我所有访问同一个数据库的 DAO 是否应该共享同一个 DB 对象,或者是否有充分的理由请求一个新的 DB 对象或每个?
谢谢!
【问题讨论】:
标签: java mongodb dao mongo-java
如果证明对您实用,您可以使用 Mongo 类、DB 类和 DBCollection 类的共享实例。从设计的角度来看,您是否想这样做取决于您。我肯定会使用 Mongo 实例作为单例,因为它们相对较重(有自己的线程池等)
【讨论】:
共享 Mongo 对象的“充分理由”是内置连接池。如果在 DAO 之间共享 Mongo 对象实例不切实际,那么(在我看来)这是创建新实例的一个很好的理由。如果实用,那就分享一下吧。
请记住,当您使用完 Mongo 实例后,您应该使用 .close(),以防止留下打开的连接。
【讨论】: