使用动态代理时,如何访问基础对象的注释?
具体来说,我使用@Column(“client_id”)注释ORM对象的设置,然后让动态代理跟踪调用带注释的setter的时间,但是......
注释代理似乎没有保留任何底层注释,因此不能对每次调用执行反射,如何使代理具有它所代表的类的注释?
谢谢你, 阿兰
答案 0 :(得分:4)
AFAIK,它取决于你的字节码注入lib。此外,请记住,通常不会继承注释(由Java规范强加)。如果要访问原始类,并且正在使用CGLIB,则可以使用以下代码段:
if (Enhancer.isEnhanced(getClass())) {
currClass = UnEnhancer.unenhance(getClass());
} else {
// else, let's get the original class directly
currClass = getClass();
}