Spring代理对象导致的获取不到原生对象注解怎么解决


本文小编为大家详细介绍“Spring代理对象导致的获取不到原生对象注解怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Spring代理对象导致的获取不到原生对象注解怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。我在接受 mq 消息的时候,需要做一个重试次数限制,如果超过 maxNum 就发邮件告警,不再重试。所以我需要对 consumer 对象进行代理,然后如果超过异常次数,我直接返回成功,并且发送成功消息,但是我获取 consumer handler 方法的方式是通过 method.getAnnotation(XXClient.class) 方式,那么就会返回 null。目标类, 我这里就之定义一个 test 方法,里面做一些个简单的打印。代理逻辑逻辑处理, 主要就是做一个 @Around 的方法覆盖,保证在调用目标方法之前,先输出我插入的逻辑。调用点, 通过 AnnotationConfigApplicationContext 获取 bean. 然后通过 getMethods() 获取所有的方法,最后查找 Anno 注解的 Method 对象。由于 m.getAnnotaion(Anno.class) 无法获取到注解信息,所以执行 test 方法失败,到此问题还原完毕,我们再来看看如何解决。通过 Anno ao = AnnotationUtils.findAnnotation(classz, Anno.class); 方法获取免费云主机域名即可。有的代码是这样写的 :这里他会做一个判断,如果是代理对象就调用 ReflectionUtils.getAllDeclaredMethods 获取所有的方法, 然后再去拿注解的时候二次判断一下,如果存在代理,那么就通过 AnnotationUtils.findAnnotation 感觉是相当的严谨。读到这里,这篇“Spring代理对象导致的获取不到原生对象注解怎么解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注百云主机行业资讯频道。

相关推荐: C++ list怎么使用

本篇内容介绍了“C++list怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!list是可以以O(1)的时间复杂度任意位置进行插入和删除的序列式容器,并且…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 04/07 12:04
下一篇 04/07 12:04

相关推荐