网站模板库
  • 首页
  • web前端工具
    • HTML/JS转换工具
    • JS/HTML格式化工具
    • 字母/英文大小写转换工具
    • robots.txt文件生成工具
    • Js压缩/格式化工具
    • Css在线压缩工具_代码格式化
  • 关于我们
    • 免责声明
    • 联系我们
    • 广告服务
    • 服务项目
    • 关于我们
    • 网站轮播
    • 公告
    • 成都优优科技专用
    • 按行业分类
  • web学院
    • 服务器教程
    • 学习资料
      • 基础书籍
      • 交互书籍
      • 入门教程
      • 特效分类
    • 案例分享
    • web资讯
  • 网页特效
    • 图片特效
    • 导航特效
    • 滑动按钮
    • 表单特效
    • 文字特效
    • 弹窗特效
    • 其他特效
  • 织梦模板
    • 科技/电子/数码/通信
    • 文化/艺术/广告/传媒
    • 装修/设计/家居/家具
    • 基建/施工/地产/物业
    • 餐饮/酒店/旅游/票务
    • 食品/果蔬/饮料/日用
    • 服饰/珠宝/礼品/玩具
    • 摄影/婚庆/家政/生活
    • 运动/健身/体育/器材
    • 学校/教育/培训/科研
    • 美容/保健/医院/医疗
    • 金融/财税/咨询/法律
    • 政府/组织/集团/协会
    • 汽车/物流/交通/搬运
    • 机械/设备/制造/仪器
    • 化工/环保/能源/材料
    • 农业/畜牧/养殖/宠物
    • 其他模版
    • IT/软件/信息/互联网
  • 手机模板
    • 手机APP模板
    • 微信小程序模板
    • wap
  • 网站模板
    • joomla模板
    • Drupal模板
    • z-blog模板
    • EyouCms模板
    • Bootstrap模板
    • 帝国cms模板
    • CmsEasy模板
    • MetInfo模板
    • 购物商城模板
      • Shopify主题
      • PrestaShop主题
    • 后台模板
    • 纯HTML模板
    • ecshop模板
    • phpwind模板
    • pbootcms模板
    • phpcms模板
    • wordpress模板
    • discuz模板
  • 教程
    • 织梦教程
    • Discuz教程
    • WordPress教程
    • Phpcms教程
    • Phpwind教程
    • ECShop教程
    • Joomla教程
    • Drupal教程
    • zblog教程
    • EyouCMS教程
    • 帝国cms教程
    • MetInfo教程
    • CmsEasy教程
登录
当前位置:网站模板库 > web学院 > 案例分享 > 如何扫描项目中所有 FeignClient 的注解属性信息
admin 案例分享 2023-06-22 5:31:57

如何扫描项目中所有 FeignClient 的注解属性信息

如何扫描项目中所有 FeignClient 的注解属性信息,第1张

如何扫描项目中所有 FeignClient 的注解属性信息,第2张

@FeignClient 不是有一些如 name 、url 等的属性信息么 通过applicationContext.getBeansWithAnnotation(FeignClient.class)可以拿到 @FeignClient 的所有 bean 但是由于 @FeignClient 都是 interface,通过getAnnotations()拿不到注解的属性信息, 代码如下,求大神指点一下

        Map<String,Object> beans = applicationContext.getBeansWithAnnotation(FeignClient.class);
        if (beans.size() > 0){
            for (Map.Entry<String, Object> entry : beans.entrySet()){
                String beanName = entry.getKey();
                Annotation[] annotations = entry.getValue().getClass().getAnnotations(); //空的
                AnnotatedType[] annotatedTypes = entry.getValue().getClass().getAnnotatedInterfaces();
                for(AnnotatedType annotationType : annotatedTypes){
                    Type type = annotationType.getType();
                    Annotation[] typeAnnotations = type.getClass().getAnnotations(); //空的
                    Annotation[] annotationTypeAnnotations = annotationType.getAnnotations(); //空的
                    Annotation[] declaredAnnotations = annotationType.getDeclaredAnnotations(); //空的
                    System.out.println(annotationTypeAnnotations);
                    System.out.println(declaredAnnotations);
                }
            }
        }
----------------------- 以下是精选回复-----------------------

答:你这样试一下,entry.getValue().getClass().getAnnotation(FeignClient.class)
答:beans.forEach((k, v) -> {
try {
if (Proxy.isProxyClass(v.getClass())) {
InvocationHandler ih = Proxy.getInvocationHandler(v);
Field targetField = ih.getClass().getDeclaredField("target");
targetField.setAccessible(true);

Target target = (Target) targetField.get(ih);
Field nameField = target.getClass().getDeclaredField("name");
nameField.setAccessible(true);

String clientName = (String) nameField.get(target);

Field urlField = target.getClass().getDeclaredField("url");
urlField.setAccessible(true);
String url = (String) urlField.get(target);

System.out.println("clientName: " + clientName);
System.out.println("url: " + url);
}
} catch (Exception e) {
log.error("失败,exception={}", ExceptionUtils.getStackTrace(e));
}
});
答:大概是这样,spring 里的 bean 是通过代理的方式注册的,需要用代理的方式去获取。
代码是从我写的工具里截取的: https://github.com/leejoker/feign-dev-tool-starter
答:是的 XD,已经改了

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何扫描项目中所有 FeignClient 的注解属性信息

admin 钻石

分享到:
上一篇
求助:为什么在服务器上访问外网链接的时候总是被自动关闭链接呢?总是报 read connection reset by peer
下一篇
网站所有东西被复制,东西被上传到另一个网站怎么办。

相关推荐

tornado 貌似 4.5+考虑放弃维护 Python 2.x 了

tornado 貌似 4.5+考虑放弃维护 Python 2.x 了

[好文加精] 为什么我们放弃了 Vue? Vue 和 React 深度对比

[好文加精] 为什么我们放弃了 Vue? Vue 和 React 深度对比

如何监听 location.href 这个值发生了变化?

如何监听 location.href 这个值发生了变化?

Python 写的脚本分享给其他人,用 docker 还是 pyinstaller 还是 virtualenv?

Python 写的脚本分享给其他人,用 docker 还是 pyinstaller 还是 virtualenv?

0条评论

发表评论 取消回复

要发表评论,您必须先登录。

提供最优质的资源集合

立即查看 了解详情
网站模板库

主题/付费下载/查看/余额管理/自定义积分,集成支付,卡密,推广奖励等。

本站导航
  • 链接标题
友情链接
  • 链接标题
快速搜索
本站由钛宇宙强力驱动
友情链接:
    商业源码网蜀ICP备2023005044号
    网站模板库
    • 登录
    • 注册
    网站模板库
    • 首页
    • web前端工具►
      • HTML/JS转换工具
      • JS/HTML格式化工具
      • 字母/英文大小写转换工具
      • robots.txt文件生成工具
      • Js压缩/格式化工具
      • Css在线压缩工具_代码格式化
    • 关于我们►
      • 免责声明
      • 联系我们
      • 广告服务
      • 服务项目
      • 关于我们
      • 网站轮播
      • 公告
      • 成都优优科技专用
      • 按行业分类
    • web学院►
      • 服务器教程
      • 学习资料►
        • 基础书籍
        • 交互书籍
        • 入门教程
        • 特效分类
      • 案例分享
      • web资讯
    • 网页特效►
      • 图片特效
      • 导航特效
      • 滑动按钮
      • 表单特效
      • 文字特效
      • 弹窗特效
      • 其他特效
    • 织梦模板►
      • 科技/电子/数码/通信
      • 文化/艺术/广告/传媒
      • 装修/设计/家居/家具
      • 基建/施工/地产/物业
      • 餐饮/酒店/旅游/票务
      • 食品/果蔬/饮料/日用
      • 服饰/珠宝/礼品/玩具
      • 摄影/婚庆/家政/生活
      • 运动/健身/体育/器材
      • 学校/教育/培训/科研
      • 美容/保健/医院/医疗
      • 金融/财税/咨询/法律
      • 政府/组织/集团/协会
      • 汽车/物流/交通/搬运
      • 机械/设备/制造/仪器
      • 化工/环保/能源/材料
      • 农业/畜牧/养殖/宠物
      • 其他模版
      • IT/软件/信息/互联网
    • 手机模板►
      • 手机APP模板
      • 微信小程序模板
      • wap
    • 网站模板►
      • joomla模板
      • Drupal模板
      • z-blog模板
      • EyouCms模板
      • Bootstrap模板
      • 帝国cms模板
      • CmsEasy模板
      • MetInfo模板
      • 购物商城模板►
        • Shopify主题
        • PrestaShop主题
      • 后台模板
      • 纯HTML模板
      • ecshop模板
      • phpwind模板
      • pbootcms模板
      • phpcms模板
      • wordpress模板
      • discuz模板
    • 教程►
      • 织梦教程
      • Discuz教程
      • WordPress教程
      • Phpcms教程
      • Phpwind教程
      • ECShop教程
      • Joomla教程
      • Drupal教程
      • zblog教程
      • EyouCMS教程
      • 帝国cms教程
      • MetInfo教程
      • CmsEasy教程

      弹窗标题

      这是一条网站公告,可在后台开启或关闭,可自定义背景颜色,标题,内容,用户首次打开关闭后不再重复弹出,此处可使用html标签...