Lad*_*ein 8 java serialization spring dynamic-proxy
我想在反序列化之后将单例范围的依赖项重新注入原型Spring bean.
假设我有一个Process bean,它依赖于Repository bean.Repository bean的作用域是单例,但Process bean是原型作用域.我会定期对序列进行序列化,然后对其进行反序列化.
class Process {
private Repository repository;
// getters, setters, etc.
}
Run Code Online (Sandbox Code Playgroud)
我不想序列化和反序列化存储库.我也不想将"瞬态"放在成员变量上,该成员变量在Process中包含对它的引用,也不是对某种代理的引用,或者除了声明为Repository的普通旧成员变量之外的任何东西.
我想我想要的是让Process依赖于一个可序列化的代理,该代理指向(通过瞬态引用)到Repository,并且在反序列化时,可以再次找到Repository.我怎么能自定义Spring呢?
我想我可以使用代理来保存依赖引用,就像.我希望我可以使用那种确切的技术.但是我看到Spring生成的代理不是可序列化的,并且文档说如果我将它与单例bean一起使用,我将得到一个例外.
我可以在单例bean上使用自定义作用域,当要求自定义作用域bean时,它总是提供代理.这是一个好主意吗?其他想法?
在反序列化对象时添加使用方面来添加注入步骤怎么样?
为此,您需要 AspectJ 或类似的工具。它的工作方式与 Spring 中的 @Configurable 函数非常相似。
例如,围绕“private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException”方法添加一些建议
本文也可能有所帮助:http://java.sun.com/developer/technicalArticles/Programming/serialization/
归档时间: |
|
查看次数: |
4339 次 |
最近记录: |