我试图在 java 中使用代理来跟踪对象并在调用 set* 方法时保存它们,从而使一些自动魔术发生。我开始使用 java 的内置代理,一切正常,但据我所知,我需要为每个模型提供一个接口,这是我试图避免的事情。
这就是 CGLIB 的用武之地,它允许我在不使用接口的情况下创建模型的代理。但是,我现在如何检索原始对象,即我要保存的对象?
最佳解决方案类似于休眠使用的 EntityManager 接口,您可以在其中保留原始对象,但仍会对其进行跟踪。
我试图在 java 中使用代理来跟踪对象并在调用 set* 方法时保存它们,从而使一些自动魔术发生。我开始使用 java 的内置代理,一切正常,但据我所知,我需要为每个模型提供一个接口,这是我试图避免的事情。
这就是 CGLIB 的用武之地,它允许我在不使用接口的情况下创建模型的代理。但是,我现在如何检索原始对象,即我要保存的对象?
最佳解决方案类似于休眠使用的 EntityManager 接口,您可以在其中保留原始对象,但仍会对其进行跟踪。
MethodInvocation接口仅指定一个将MethodInvocation作为参数的方法。MethodInvocation 有几种方法来检索正在执行的对象:getStaticPart、getThis。你试过打电话给他们吗?
作为一个无耻的插件,你实际上可以将 Hibernate 与 Xstream 一起使用。这是我关于 Xstream 持久性的博客文章。但在这种情况下,Xstream 用于将 XML 格式的字段保存在数据库中。