【发布时间】:2010-03-08 12:55:17
【问题描述】:
我的应用程序使用 Spring DefaultMessageListenerContainer 来处理传入消息。应用的 main 方法已经注册了一个关闭钩子。
问题是:强制关闭应用程序上下文的最佳方法是什么?
如果我在消息侦听器中抛出RuntimeException,它由容器处理,而不是传递。调用 System.exit 可以接受吗?我是否将ApplicationContext 传递给每个需要关闭的类,以便我可以调用close()?
【问题讨论】:
-
为什么需要关闭应用上下文?
-
因为消息监听器可以决定它需要;要么是因为它收到了一条要求关闭应用程序的管理消息,要么是因为发生了异常情况。有很多,其中之一是接收到的重试次数过多(这是一个高容量系统)