MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Utilizzare un unico MongoClient su un servizio Web JavaEE

Il javadoc dice:

Quindi, quando crei un singleton con il client al suo interno. Può essere riutilizzato come menzionato nel Javadoc. Non è richiesta alcuna sincronizzazione, poiché è thread-safe.

Una delle implementazioni potrebbe essere:

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

e utilizzare il client come, in tutta l'applicazione. Connection pooling sarà curato dal MongoClient come documentato.

MongoClient client = ConnectionFactory.CONNECTION.getClient();

oppure usa l'annotazione @singleton:

@Singleton
public class SingletonA {

}

Fare riferimento a:http://tomee.apache.org/singleton-example.html