我有以下代码
public enum MyInstances {
INSTANCE;
private InstanceClass instance;
private MyInstances(String param){initTitanGraph(param);}
private void initTitanGraph(String param){
instance = SomeFactoryClass.open(param);
}
public InstanceClass getInstance(){
return instance;
}
public void destroyInstance(){
//destroy or close all instances of InstanceClass class
}
}
现在我想打电话
MyInstances.INSTANCE.getInstance();
获取instance
。
和
MyInstances.INSTANCE.destroyInstance();
销毁instance
。
我正在使用spring mvc。如何使用spring mvc注入实现相同的类,以便在应用程序关闭destroyInstance
时应该调用,我也可以使用getinstance()
在任何地方获取instance
。
答案 0 :(得分:1)
除非你定义它,否则没有destroy方法。这没有任何作用。无论你做什么,实际的INSTANCE仍然在记忆中,作为单身人士。
你正在将一个esingleton模式应用于Enum。
jumm将枚举硬编为单例,而不需要程序员的任何额外内容。
使用@Postconstruct
和@Predestory
注释可以实现春季应用程序的启动和停止。