2008-09-28 53 views
4

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

具体来说,我注释一个ORM对象的设置与@Column(“的client_id”),然后作出动态代理跟踪时,注释setter方法被称为的,但是......

它不似乎注释的代理保留了任何基础注释,因此对每次调用都没有执行反射,我该如何让代理具有它的代理类的注释?

谢谢 阿兰

回答

4

据我所知,这取决于你的字节码注射库。此外,请记住,通常注释不会被继承(由Java规范强加)。如果你想访问原来的类,并且正在使用CGLIB,你可以使用这段代码:

if (Enhancer.isEnhanced(getClass())) { 
    currClass = UnEnhancer.unenhance(getClass()); 
} else { 
    // else, let's get the original class directly 
    currClass = getClass(); 
}