MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Verwenden Sie einen einzelnen MongoClient über einen JavaEE-Webdienst

Das javadoc sagt:

Also, wenn Sie ein Singleton mit dem Client darin erstellen. Es kann wie im Javadoc erwähnt wiederverwendet werden. Es ist keine Synchronisierung erforderlich, da sie Thread-sicher ist.

Eine der Implementierungen könnte sein:

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;
    }
}

und verwenden Sie den Client als in der gesamten Anwendung. Connection pooling wird vom MongoClient erledigt wie dokumentiert.

MongoClient client = ConnectionFactory.CONNECTION.getClient();

oder verwenden Sie die @singleton-Anmerkung:

@Singleton
public class SingletonA {

}

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