sql >> Databasteknik >  >> NoSQL >> MongoDB

När ska man använda Singleton vs Transient vs Request med Ninject och MongoDB

I allmänhet i en webbapp vill du att tillståndet ska vara begäran omfattning så mycket som möjligt.

Endast i fallet med optimeringar på mycket låg nivå är det troligt att du någonsin stöter på ett fall där det är lämpligt att skapa singleton-objekt (och chansen även då är att du drar ut sådan caching/delningslogik till en annan klass som dras in som ett beroende av dina andra [request scope]-objekt och gör det singleton scope). Kom ihåg att en singleton i en webbapps sammanhang betyder flera trådar som använder samma objekt. Detta är sällan goda nyheter.

På samma grund är transient scope den enklaste standarden (och det är därför Ninject 2 gör det så) - request scope bör bara komma in i ekvationen när något behöver delas av prestandaskäl, etc. (eller för att det helt enkelt är sammanhanget av delningen [som nämnts i det andra svaret]).



  1. Meteor.Collection.ObjectID() vs MongoDB ObjectId()

  2. Hur skapar jag en första mongodb-användare med auktorisering aktiverad?

  3. Hur man använder $unset och $set i kombination i mongoDB

  4. Mongodb hämta dokument mellan datum(Lagrade som sträng i formatet 2019-05-20)