代码之家  ›  专栏  ›  技术社区  ›  xcut

从一个豆子强制关闭弹簧的最佳方法?

  •  6
  • xcut  · 技术社区  · 14 年前

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

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

    如果我扔一个 RuntimeException 在消息侦听器中,它由容器处理,而不是传递。可接受呼叫系统退出吗?我要沿着 ApplicationContext 给每一个需要关闭的班级打电话 close() 在上面?

    1 回复  |  直到 10 年前
        1
  •  13
  •   Bozho Michał Mech    10 年前

    您可以将应用程序上下文强制转换为 ConfigurableApplicationContext 并打电话 close() 关于它。至少在web应用程序环境中关闭上下文时会发生这种情况,以防servlet上下文被破坏。

    如果你想知道 ApplicationContext ,您的bean可能实现 ApplicationContextAware

    另一个选择是注入 @Autowired )应用程序上下文:

    @Inject
    private ApplicationContext ctx;