4

使用动态代理时,如何访问底层对象的注解?

具体来说,我正在使用 @Column("client_id") 注释 ORM 对象的设置,然后让动态代理跟踪何时调用带注释的设置器,但是......

带注释的代理似乎没有保留任何底层注释,因此无法对每次调用执行反射,如何使代理具有它所代理的类的注释?

谢谢你,艾伦

4

1 回答 1

4

AFAIK,这取决于您的字节码注入库。另外,请记住,注释通常不是继承的(由 Java 规范强加)。如果你想访问原始类,并且正在使用 CGLIB,你可以使用这个片段:

 if (Enhancer.isEnhanced(getClass())) {
    currClass = UnEnhancer.unenhance(getClass());
 } else {
    // else, let's get the original class directly
    currClass = getClass();
 }
于 2008-09-28T11:46:41.060 回答