美文网首页
spring aop获取代理目标对象

spring aop获取代理目标对象

作者: 草_帽 | 来源:发表于2020-04-08 11:44 被阅读0次

spring aop获取代理目标对象

转载: https://coget.cn/archives/spring%20aop%E8%8E%B7%E5%8F%96%E4%BB%A3%E7%90%86%E7%9B%AE%E6%A0%87%E5%AF%B9%E8%B1%A1

大家一定在开发中遇见了这个问题,getClass() 后获取不到目标对象,或者说,拿到 class 后 getAnnotation() 获取不到,这些是 spring aop 将对象,改装成了代理对象。

上代码,如:扫描MQ注解

正常:

xxx.getClass().getAnnotation(MQConsumer.class);

增加 @Transactional,后 spring 事务管理器,将 Method 增改,包装了一个代理对象。

 consumers.entrySet().forEach(entry -> {
    MQConsumer consumer;
    if (AopUtils.isAopProxy(entry.getValue())) {
        consumer = AopProxyUtils.getSingletonTarget(entry.getValue()).getClass().getAnnotation(MQConsumer.class);
    } else {
        consumer = entry.getValue().getClass().getAnnotation(MQConsumer.class);
    }
});

ps:

  • 第一步:检查是否是 aop 代理对象
  • 第二步:获取代理对象就ok拉🌹🌹🌹。

相关文章

  • spring aop获取代理目标对象

    spring aop获取代理目标对象 转载: https://coget.cn/archives/spring%2...

  • Spring AOP内部调用失效问题

    Spring AOP基本原理 Spring AOP是基于动态代理机制实现的,通过动态代理机制生成目标对象的代理对象...

  • AOP代理:

    AOP代理:AOP框架创建的对象,代理就是对目标对象的增强。Spring中的AOP代理可以是JDK动态代理,也可以...

  • 通过反射获取spring中aop代理的target对象

    最近项目需要获取从spring创建的aop代理中获取它的target对象,其实可以通过反射来获取,代码如下 aop...

  • spring AOP

    1,原理:Spring AOP底层原理采用运行时生成动态代理的方式来增强目标对象。AOP 代理其实是由 AOP 框...

  • Spring AOP从零单排-织入时期源码分析

    问题:Spring AOP代理中的运行时期,是在初始化时期织入还是获取对象时期织入? 织入就是代理的过程,指目标对...

  • Spring AOP从原理到源码(三)

    接着上一节Spring AOP从原理到源码(二),本节关注spring aop创建代理对象的过程。 Spring ...

  • spring aop 汇总

    静态代理、动态代理和cglib代理 aop 使用 Spring AOP - 注解方式使用介绍spring aop ...

  • 获取spring aop 代理目标类

    工作中过程中需要使用aop,spring中帮我们封装了特别好用的代理工具类ProxyFactory ,有时我们需要...

  • Spring AOP实现原理

    1.Spring AOP是如何对目标对象的方法进行拦截的? 通过JDKProxy或CGLibProxy动态生成代理...

网友评论

      本文标题:spring aop获取代理目标对象

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