在一个基于 Spring 的应用程序中,我有一个实现 DisposableBean 接口的会话范围的 bean。是否存在会话过期时不会调用其销毁方法的任何情况?
该应用程序使用 Spring 版本:2.0.8 并在 WebSphere 6.1 上运行。
显然,在 WebSphere 网络部署中,一次性 Bean 可能无法正确销毁。在集群环境中,应用程序服务器创建会话 Bean 的副本(使用序列化/反序列化)。然后,当会话无效时,它不是在原始 Bean 上而是在其副本上调用destroy
。因此,在这种情况下,永远不会调用原始 Bean 上的 destroy
方法。