Должны ли мои DAO MongoDB запрашивать уникальные объекты БД? - PullRequest
4 голосов
/ 25 января 2012

Я использую стандартный Java-драйвер MongoDB для развертывания своих собственных DAO.Мне известно, что все мои DAO могут совместно использовать один и тот же экземпляр Mongo, но должны ли все мои DAO, обращающиеся к одной и той же базе данных, использовать один и тот же объект БД, или есть веские причины для запроса нового объекта БД или каждого?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 25 января 2012

Вы можете использовать общие экземпляры класса Mongo, класса DB и класса DBCollection, если это окажется полезным для вас. Независимо от того, хотите ли вы с точки зрения дизайна, решать вам. Я бы определенно использовал экземпляры Mongo в качестве синглетонов, поскольку они имеют относительно большой вес (имеют собственный пул потоков и т. Д.)

1 голос
/ 25 января 2012

«Хорошая причина» для совместного использования объекта Mongo - встроенный пул соединений.Если нецелесообразно делить ваш экземпляр объекта Mongo между DAO, то это хорошая причина (на мой взгляд) для создания новых экземпляров.Если это целесообразно, вы должны поделиться им.

Помните, что вы должны использовать .close(), когда закончите использовать экземпляр Mongo, чтобы не оставлять открытые соединения.

...