如何清除ApplicationContextInitializer
实现中使用的资源?
我创建了一个ApplicationContextInitializer
实现,该实现使用Curator项目连接到Zookeeper并获取属性文件。然后,它创建一个Properties
实例(一个PropertiesPropertySource
)并将其添加到上下文中。
当应用程序关闭时,我希望能够在作为初始化器成员的close()
实例上调用CuratorFramework
。如何做到最好?
我还可以将CuratorFramework
实例传递到上下文中,以便将其用作Bean吗?
最佳答案
我将创建一个获取春季事件的bean,并使用它来关闭策展人,
public class CuratorDisposer implements DisposableBean {
private CuratorFramework delegate; //set through spring somehow
public void destroy() {
delegate.close();
}
}