javadoc
mówi:
Tak więc, kiedy tworzysz singletona z klientem w nim. Można go ponownie wykorzystać, jak wspomniano w dokumentacji Javadoc. Synchronizacja nie jest wymagana, ponieważ jest bezpieczna dla wątków.
Jedną z implementacji może być:
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;
}
}
i używaj klienta w całej aplikacji. Connection pooling
będzie pod opieką MongoClient
zgodnie z dokumentacją.
MongoClient client = ConnectionFactory.CONNECTION.getClient();
lub użyj adnotacji @singleton:
@Singleton
public class SingletonA {
}
Zobacz:http://tomee.apache.org/singleton-example.html