sql >> Databasteknik >  >> NoSQL >> MongoDB

Använd en enda MongoClient över en JavaEE-webbtjänst

javadoc säger:

Så, när du skapar en singleton med klienten i den. Det kan återanvändas enligt Javadoc. Ingen synkronisering krävs, eftersom det är trådsäkert.

En av implementeringarna kan vara:

public enum ConnectionFactory {
    CONNECTION;
    private MongoClient client = null;

    private ConnectionFactory() {
        try {
            client = new MongoClient();
        } catch (Exception e) {
            // Log it.
        }
    }

    public MongoClient getClient() {
        if (client == null)
            throw new RuntimeException();
        return client;
    }
}

och använd klienten som genom hela applikationen. Connection pooling kommer att tas om hand av MongoClient som dokumenterats.

MongoClient client = ConnectionFactory.CONNECTION.getClient();

eller använd @singleton-kommentaren:

@Singleton
public class SingletonA {

}

Se:http://tomee.apache.org/singleton-example.html



  1. hur får man nycklar som inte matchar ett visst mönster i redis?

  2. Hitta som skiljer sig från samlingar i mongodb

  3. Hur kan jag i MongoDB sortera dokument baserat på en egenskap i ett inbäddat objekt?

  4. MongoDB Database Deployment Automation