当前位置: 首页 > 面试题库 >

从bean强制Spring关闭的最佳方法?

吴鸿禧
2023-03-14
问题内容

我的应用程序使用Spring DefaultMessageListenerContainer处理传入消息。该应用程序的主要方法已经注册了一个关闭钩子。

问题是:强制关闭应用程序上下文的最佳方法是什么?

如果我RuntimeException在消息侦听器中抛出,则它由容器处理,并且不会传递。可以调用System.exit吗?我是否将传递ApplicationContext给需要关闭的每个类,以便进行调用close()


问题答案:

您可以将应用程序上下文投射到ConfigurableApplicationContext并调用close()它。至少在servlet上下文被破坏的情况下,在Web应用程序环境中关闭上下文时,会发生这种情况。

如果您想了解ApplicationContext,您的bean可以实现ApplicationContextAware

另一个选择是注入(或与之自动@Autowired关联)应用程序上下文:

@Inject
private ApplicationContext ctx;


 类似资料:
  • 问题内容: 我需要一些调试我的应用程序的帮助。首先:在模拟器和其他一些设备上,我的应用运行良好。在我的设备上,我得到了强制关闭(没有强制关闭消息)。 如果应用程序的活动发生更改,则会发生“崩溃”。 这是该类的一些代码。它只是通过从网页读取html内容。不,HttpRequest由于我无法模拟发布请求,因此无法完成此操作。 因此,在该方法中,我只是将代码传递给另一个类,该类读取,解析和显示内容。 现

  • 我试图用Java编写异步编程,并使用ExecutorService创建一个由多个线程支持的池来提交多个可调用任务,但对于如何关闭ExecutorService我没有什么问题。 以下是我的原始代码: 这样做很好,执行器在线程完成后关闭。但我担心如果写错了什么,可调用任务中的代码将永远占用,程序将永远停止,永远不会退出。 我的问题是如何设置强制关闭池中线程的时间,这样我就不需要显式地使用来阻止程序。

  • 问题内容: 我在互联网上寻找将数据从Java桌面应用程序导出到Excel的答案,并且遇到了Apache POI API 。然后我发现JDBC可以工作,然后偶然发现了JExcel。它们都是一样好,还是我应该专注于其中最好的,这是什么? 干杯。 问题答案: 我可能来不及回答这个问题,但是我想您的正确选择是Jxls。我在模块中遇到了类似的情况,必须保留徽标,颜色,col- span,固定列等特定模板…因

  • 问题内容: 这是我第一次尝试在我的应用中添加广告。我已阅读在线文档并逐字阅读。现在,我唯一不了解的部分是如何实际请求广告并将其添加到我的应用中。 到目前为止,这似乎很好。我要做的其他任何事情都将被迫关闭。例如,添加以下行: 我已将AdListener实现到Activity。 顺便说一句,当我将鼠标悬停在导入的类上时: 或其他类似的类,它表示:注意:该元素既没有附加源,也没有附加Javadoc,因此

  • 问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我过去曾经做过Java和JSP编程,但是我是Java Server Faces的新手,并且想知道JSF开发是否有一套最佳实践。 问题答案: 一些提示:了解JS

  • 我想从spring控制器返回一个字符串(json字符串)作为它接收到的AJAX调用的响应,响应可能会根据我是否提交了@Valid表单而有所不同。这就是我处理它的方式,我想知道这是否被认为是最佳实践?请注意,我使用的是@RestController,所以@ResonseBody应用所有方法。