WebSphere Application Server在其文档之一中具有以下注释。我在耳朵级别有应用程序上下文,并使用ClassPathXmlApplicationContext
,它是AbstractApplicationContext
的子类。但不建议这样做。我有什么选择?我可以在耳朵级别使用什么生命周期钩子?此外,请包括任何陷阱或经验教训。
以下方案是Spring Framework方案的示例 避免:
registerShutdownHook
避免使用Spring Framework AbstractApplicationContext类和 它的子类。这些类包括公共方法 registerShutdownHook,它创建一个线程并将其注册到 Java虚拟机(JVM)在关闭时运行以关闭应用程序 上下文。作为替代方案,应用程序可以使用生命周期 它从应用程序服务器容器接收到的通知 关于应用程序上下文的close方法。
答案 0 :(得分:3)
我会使用Singleton Session Bean(对于WebSphere 8+)或Startup Beans(对于较旧的Websphere版本),如related problem中所述。
对于Singleton Session Beans
,您可以创建一个使用@PreDestroy
注释的方法close AbstractApplicationContext。
对于Startup Beans
,您可以在stop()
方法中执行相同操作。