我正在用Spring开发一个Web应用程序,它具有两种类型的bean作用域-单例和会话。会话级bean正在使用单例提供的不同服务。这些服务之一负责清理用户会话中的文件。在正常使用情况下,此方法可以正常运行,但在关闭应用程序时会失败。会话级bean在单例之后被破坏。这意味着会话bean请求服务已经被破坏。
我的应用程序所需的销毁bean的顺序为:
我已经尝试过DependsOn注释来描述依赖关系,但是它不能按我需要的方式工作。使用注释(也可以使用@Order),我只能在单例bean中控制创建和销毁的顺序。
此外,我的Web应用程序配置完全基于注释。
答案 0 :(得分:0)
我的解决方法是创建会话管理器服务。
此服务监视会话,并且在@PreDestroy
事件上,所有注册的会话均无效,这将破坏所有会话作用域对象。现在一切都可以很好地清理了。