O
javadoc
diz:Então, quando você cria um singleton com o cliente nele. Ele pode ser reutilizado conforme mencionado no Javadoc. Nenhuma sincronização é necessária, pois é thread-safe.
Uma das implementações poderia ser:
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 usar o cliente como, em toda a aplicação.
Connection pooling
será cuidado pelo MongoClient
conforme documentado. MongoClient client = ConnectionFactory.CONNECTION.getClient();
ou use a anotação @singleton:
@Singleton
public class SingletonA {
}
Consulte:http://tomee.apache.org/singleton-example.html