美文网首页diboot
Spring中获取代理对象的目标类Class及Class中的泛型

Spring中获取代理对象的目标类Class及Class中的泛型

作者: 一个鸡蛋壳儿 | 来源:发表于2020-04-10 17:50 被阅读0次

    在Spring里如果你通过AplicationContext获取Bean实例,你拿到的可能是一个被Spring代理的对象实例,如果你需要获取这个代理对象的目标类Class该怎么做呢?

    也许你百度了半天找到的解决方案大都是要自己写上一大段蹩脚的代码,忘了那个过时的方案吧,只需要调用Spring的AopUtils,一行代码搞定。

    AopUtils.getTargetClass(yourObjectInstance);
    

    这种场景Spring内部肯定经常需要,用Spring自己的解决方案才是最合理的选择。

    类似的,当你需要从类定义中提取泛型参数的对象Class,也可以借助Spring的方案:

    ResolvableType resolvableType = ResolvableType.forClass(yourClass).getSuperType();
    ResolvableType[] types = resolvableType.getGenerics();
    return types[yourParamIndex].resolve();
    

    更多极简封装,请关注diboot github


    Diboot - 简单高效的自动化开发助理 (欢迎star)

    相关文章

      网友评论

        本文标题:Spring中获取代理对象的目标类Class及Class中的泛型

        本文链接:https://www.haomeiwen.com/subject/gnhdmhtx.html