【问题标题】:How to destroy beans in correct order (session and singleton scopes used)?如何以正确的顺序销毁 bean(使用会话和单例范围)?
【发布时间】:2018-10-01 13:41:51
【问题描述】:

我正在使用 Spring 开发一个 Web 应用程序,它具有两种类型的 bean 范围 - 单例和会话。会话级 bean 使用单例提供的不同服务。其中一项服务负责清理用户会话中的文件。这在正常使用下可以正常工作,但在应用程序关闭时会失败。会话级别的 bean 在单例之后被销毁。这意味着会话 bean 请求服务已经被销毁。

我的应用程序所需的 bean 销毁顺序是:

  • 会话范围的 bean;
  • 单豆。

我已经尝试过 DependsOn 注释来描述依赖关系,但它并没有按照我需要的方式工作。使用注释(也使用@Order),我只能在单例 bean 中控制创建和销毁的顺序。

另外,我的网络应用配置完全基于注释。

【问题讨论】:

    标签: java spring spring-mvc


    【解决方案1】:

    我的解决方法是创建会话管理器服务。 此服务监视会话,并在 @PreDestroy 事件上使所有已注册的会话无效,这会破坏所有会话范围的对象。现在一切都很好地清理了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-22
      • 2013-02-09
      • 1970-01-01
      • 2017-01-20
      • 2019-04-14
      • 2016-09-17
      • 2013-09-24
      • 2016-11-13
      相关资源
      最近更新 更多