【问题标题】:Should my MongoDB DAOs request unique DB objects?我的 MongoDB DAO 是否应该请求唯一的数据库对象?
【发布时间】:2012-01-25 15:12:29
【问题描述】:

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

谢谢!

【问题讨论】:

    标签: java mongodb dao mongo-java


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      请记住,当您使用完 Mongo 实例后,您应该使用 .close(),以防止留下打开的连接。

      【讨论】:

      • Mongo 实例是一个相对较重的对象,所以如果 DAO 是短暂的(例如请求范围),我不会为每个 DAO 使用一个实例
      • @RemonvanVliet 我同意。最佳做法是拥有可以共享的单例。
      • 感谢您的回复!我确实知道我应该共享 Mongo 对象,但我想知道 DB 对象是否也应该/不应该共享。我认为雷蒙回答了这个问题。感谢关于 close() 的提示。
      猜你喜欢
      • 2018-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      相关资源
      最近更新 更多