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