我们有一个JSF应用程序,其中包含几个会话范围的bean。一个例子是:
@Component
@SessionScope
public class SomeSessionBean implements Serializable {
@Autowired
private transient SomeService someService; // singleton bean
// ...
}
类SomeService
不可序列化,因此该属性被标记为transient
。
在SomeService
反序列化并重新加载到(Tomcat)SessionManager中的情况下,Spring似乎不会自动重新连接SomeSessionBean
。但是,有this video presentation from SpringOne表示在Spring 3.x中引入了针对这种情况的机制。
我完全知道使用Spring的ObjectFactory
或ObjectProvider
可以解决此问题。但是,对于开发人员来说,使用特殊的接口声明属性或构造函数参数并不透明,因此(反序列化)效果很好。
所以我的问题是:Spring中是否存在一种机制,当对会话范围的bean进行反序列化时,该机制可以重新连接不可序列化的bean?