【发布时间】:2012-10-02 17:35:50
【问题描述】:
我试图在 java 中使用代理来跟踪对象并在调用 set* 方法时保存它们,从而实现一些自动魔术。我开始使用 java 的内置代理,一切正常,但据我所知,我需要每个模型的接口,这是我试图避免的事情。
这就是 CGLIB 的用武之地,它允许我在不使用接口的情况下创建模型的代理。但是,我现在如何检索原始对象,即我要保存的对象?
最佳解决方案是类似于 hibernate 使用的 EntityManager 接口,您可以在其中保留原始对象,但仍会对其进行跟踪。
【问题讨论】:
-
您的意思是您正在尝试使用标准 Java 序列化来持久化对象,但在序列化使用 CGLIB 检测的类时遇到问题?
-
我正在使用 xstream 将对象序列化为 xml,但问题是我无法从 MethodInterceptor 类的拦截方法中访问模型对象。我希望这让它更清楚一些。
标签: java hibernate proxy-classes cglib