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