MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Utiliser un seul MongoClient sur un service Web JavaEE

Le javadoc dit :

Ainsi, lorsque vous créez un singleton avec le client dedans. Il peut être réutilisé comme mentionné dans le Javadoc. Aucune synchronisation n'est requise, car il est thread-safe.

L'une des implémentations pourrait être :

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

et utiliser le client comme, tout au long de l'application. Connection pooling sera pris en charge par le MongoClient comme documenté.

MongoClient client = ConnectionFactory.CONNECTION.getClient();

ou utilisez l'annotation @singleton :

@Singleton
public class SingletonA {

}

Référez-vous :http://tomee.apache.org/singleton-example.html