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