Я пишу адаптер для клиента переиздания для использования в нашем приложении, я не уверен, что это хороший дизайн, чтобы закрыть клиент в блоке финализации. Ниже приведен код. Пожалуйста, дай мне знать
private static final RedissonClient client;
static {
File configFile = Paths.get(Constants.ConfigDir, "cache-
config.yml").toFile();
try {
client = Redisson.create(Config.fromYAML(configFile));
} catch (IOException e) {
throw new UnableToCreateCacheClientException(e.getMessage() + e.getStackTrace(), e.getCause());
}
}
@Override
protected void finalize() throws Throwable {
super.finalize();
client.shutdown();
}
public static RedissonClient getClient() {
return client;
}
РЕДАКТИРОВАТЬ: мне интересно знать правильный дизайн, чтобы закрыть статический конечный объект соединения в веб-приложении. Я не могу закрыть его в блоке finally метода, потому что клиент будет использоваться несколькими методами в нескольких классах.