Spring:会话范围bean的序列化

时间:2013-03-11 09:18:27

标签: spring serialization

我有一个带有范围会话的Spring bean。这个bean包含对另一个不可序列化的单例bean的引用。如果我想序列化会话范围的bean,最好的方法是什么?

这里已经提出了同样的问题:Spring session-scoped beans (controllers) and references to services, in terms of serialization

接受的答案是:

  

[...]这个问题在Spring 3.0中通过提供非可序列化bean的代理来解决,该bean从当前应用程序上下文中获取实例

据我所知,链接视频中的发言人应该“正常工作”。但就我而言,它不是!当我尝试序列化会话范围bean时,我得到NotSerializableException

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您需要指示 Spring来创建该代理。在基于XML的配置中,通过<aop:scoped-proxy/>标记,在component-scan模式下通过注释:

@Scope(proxyMode = ScopedProxyMode.INTERFACES) 

在您的控制器类上。

答案 1 :(得分:-2)

您可以将单身人士参考字段标记为transient。然后检查How to execute method after deserialization并从ApplicationContext加载参考。 另外,请提供stacktrace。

P.S。

使用会话钝化并不是一个好主意。