ฉันกำลังเขียนอะแดปเตอร์สำหรับไคลเอ็นต์การแจกจ่ายซ้ำเพื่อใช้ในแอปพลิเคชันของเรา ฉันไม่แน่ใจว่าการปิดไคลเอ็นต์ในบล็อกสรุปผลเป็นการออกแบบที่ดีหรือไม่ ด้านล่างเป็นรหัส กรุณาแจ้งให้เราทราบ
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;
}
แก้ไข: ฉันสนใจที่จะทราบการออกแบบที่เหมาะสมเพื่อปิดออบเจ็กต์การเชื่อมต่อสุดท้ายแบบคงที่ในเว็บแอป ฉันไม่สามารถปิดมันในบล็อกสุดท้ายของวิธีการได้เนื่องจากไคลเอนต์จะถูกใช้งานหลายวิธีในหลายคลาส