据我所知,创建动态Java代理需要有一个接口来处理代理.然而,Hibernate似乎在不需要为实体类编写接口的情况下管理其动态代理生成.它是如何做到的?Hibernate文档中唯一的线索是指类必须至少具有用于代理生成的包可见构造函数.
Hibernate是否使用自定义类加载器进行运行时字节码工程?文档表明情况并非如此.那么他们如何围绕具体的实体对象创建代理包装器呢?他们只是创建了一些简单的接口代理而不用担心类型安全,然后根据需要进行转换吗?
从Hibernate 3.3开始,默认的字节码提供程序现在是Javassist而不是CGLib.
Hibernate核心迁移指南:3.3