使用动态代理时,如何访问基础对象的注释?
时间:2020-03-06 14:50:13 来源:igfitidea点击:
使用动态代理时,如何访问基础对象的注释?
具体来说,我正在使用@Column(" client_id")注释ORM对象的设置,然后使动态代理跟踪被注释的setter的调用时间,但是...
似乎带注释的代理不会保留任何基础注释,以至于在每次调用时都无法执行反射,如何使代理具有其正在代理的类的注释?
谢谢,
阿兰
解决方案
AFAIK,这取决于字节码注入库。另外,请记住,注释通常不会被继承(由Java规范强加)。如果要访问原始类,并且正在使用CGLIB,则可以使用以下代码段:
if (Enhancer.isEnhanced(getClass())) { currClass = UnEnhancer.unenhance(getClass()); } else { // else, let's get the original class directly currClass = getClass(); }