【问题标题】:When Using Dynamic Proxies, how do I access the underlying object's Annotations?使用动态代理时,如何访问底层对象的注解?
【发布时间】:2008-09-28 01:21:06
【问题描述】:

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

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

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

谢谢你, 阿兰

【问题讨论】:

    标签: java proxy annotations


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-06
      • 2012-10-15
      • 2011-10-18
      相关资源
      最近更新 更多