Dans la documentation officielle
il est indiqué que MongoServer
, MongoDatabase
, et MongoCollection
sont thread-safe, et que vous êtes censé créer un seul MongoServer
pour chaque base de données à laquelle vous vous connectez.
Ainsi, MongoServer
, MongoDatabase
, et MongoCollection
peuvent être configurés en toute sécurité pour être des singletons. MongoServer
aidera même à faire respecter cela en retournant le même MongoDatabase
instance pour les appels successifs, et MongoDatabase
fera la même chose pour MongoCollection
s.
C'est à dire. votre MongoServer
l'instance peut être configurée en toute sécurité pour avoir un style de vie singleton dans votre conteneur IoC, et vous pouvez tout aussi bien configurer l'injection pour MongoDatabase
et peut-être même MongoCollection
aussi bien.
J'utilise moi-même cette stratégie avec Windsor - vous pouvez voir mon MongoInstaller
ici :https://gist.github.com/2427676
- cela permet à mes cours d'aller de l'avant et de faire ceci :
public class SomeClass
{
public SomeClass(MongoCollection<Person> people)
{ ... }
}
afin d'avoir une collection injectée, belle et prête à l'emploi.