一个方法获取所有Controller接口信息

获取所有Controller接口信息并导出 【代码】获取所有Controller接口信息并导出。 阅读详情
AI摘要

本文介绍一种高效方法,可在Spring MVC项目中一次性获取所有接口方法上的自定义注解及其值,避免了传统方法中需要多次调用才能收集到所需数据的问题。

项目上需要导出所有接口方法上自定义注解中的值,犯了难。一般我们都是通过fIlter,inteceptor,aop中拦截请求进而可以获取的类的信息。这样可能需要调用多次才能得到我们要的数据。这次给大家分享一下可以一次性获取的方案。不多说,直接上代码:

@Controller
@RequestMapping(value = "/api")
public class TestController {

    @Autowired
    private WebApplicationContext applicationContext;

    @ResponseBody
    @RequestMapping(value = "/getAllUrl", method = RequestMethod.GET)
    public List getAllUrl() {
        RequestMappingHandlerMapping mapping = applicationContext.getBean(RequestMappingHandlerMapping.class);
        // 获取url与类和方法的对应信息
        Map<RequestMappingInfo, HandlerMethod> map = mapping.getHandlerMethods();

        List<Map<String, String>> list = new ArrayList<Map<String, String>>();
        for (Map.Entry<RequestMappingInfo, HandlerMethod> m : map.entrySet()) {
            Map<String, String> map1 = new HashMap<String, String>();
            RequestMappingInfo info = m.getKey();
            HandlerMethod method = m.getValue();
            //获取当前方法所在类名
            Class<?> bean = method.getBeanType();
            //获取方法上注解以及注解值
            OperationLog methodAnnotation = method.getMethodAnnotation(OperationLog.class);
            if(methodAnnotation==null){
                continue;
            }
            String privilegeName = methodAnnotation.tag()+"_"+methodAnnotation.type();
            PatternsRequestCondition p = info.getPatternsCondition();
            for (String url : p.getPatterns()) {
                map1.put("url", url);
            }
            map1.put("className", method.getMethod().getDeclaringClass().getName()); // 类名
            map1.put("method", method.getMethod().getName()); // 方法名
            map1.put("tag", privilegeName);
            list.add(map1);
        }
        return list;
    }

}
idea插件生成dao类service类controller类以及mapper.xml idea插件生成dao类service类controller类以及mapper.xml,安装插件Easycode和MybatisX,不用自己写代码,但需要根据公司业务进行部分修改。 阅读详情

相关推荐

CHIP-Seq数据分析流程

文章目录CHIP-Seq数据分析流程相关软件安装数据下载将SRA转化为fastq文件数据质控,过滤数据质控然后进行质控,过滤低质量reads,去接头比对下载小鼠参考基因组的索引和注释文件比对sam文件转bam为bam文件建立索引载入IGV查看用MACS call peak安装MACS结果注释与可视化 CHIP-Seq数据分析流程 相关软件安装 所需要的软件有sratoolkit, fastqc,bowtie2,samtools,macs2,htseq-count,bedtools和前面RNA-seq数据分析

bio_meimei的博客 8791

Springboot项目获取所有的接口

@Autowired private WebApplicationContext applicationContext; @Override public List getAllUrl() { RequestMappingHandlerMapping mapping = applicationContext.getBean(RequestMappingHandlerMapping.class); // 获取url与类和方法的对应信息 Map<RequestMappingIn.

小石潭记丶 5740

Upwork入门指南:如何创建吸引人的个人资料

本文详细介绍了如何在Upwork上创建并优化个人资料,帮助自由职业者吸引更多客户。内容包括: 注册与验证:从注册账号到邮箱验证的完整步骤。 个人资料填写:如何撰写吸引人的标题、简介,选择技能标签,以及设置专业头像和费率。 作品集与优化:上传高质量作品集,提升搜索排名和客户信任度。 常见问题解答:解决新手常见问题,如无工作经验或审核不通过。 通过本文的指导,你将学会打造一个专业且高效的个人资料,为在Upwork上获得更多机会奠定基础。

qq_61813593的博客 3520

SpringMVC原理学习(一)RequestMappingHandlerMapping 与 RequestMappingHandlerAdapter

/ 例如经常需要用到请求头中的 token 信息, 用下面注解来标注由哪个参数来获取它@Target(ElementType.PARAMETER) // 注解位置:方法参数上@Retention(RetentionPolicy.RUNTIME) // 注解作用范围:运行期}// 与 @ResponseBody 注解功能类似,不过返回的是 yml 格式的字符串@Target(ElementType.METHOD) // 注解位置:方法上。

小鲁蛋的博客 1717

从BIOS到路由器:深入拆解SPI NOR Flash的硬件连接与‘芯片内执行’(XIP)奥秘

本文深入解析SPI NOR Flash的硬件连接与‘芯片内执行’(XIP)技术,从BIOS到路由器的应用场景出发,详细介绍了其架构精髓、典型连接方案、时序设计及性能优化方法。通过实际案例和参数对比,帮助开发者掌握NOR Flash在嵌入式系统中的关键作用与设计技巧,提升电路设计效率与可靠性。

weixin_30522183的博客 492

【脑电分析系列】第15篇:脑电功能连接性与脑网络分析(二):Granger因果性、图论指标与复杂网络构建

摘要: 本文深入探讨了脑电(EEG)分析中的高阶连接性方法——有效连接(Effective Connectivity),重点介绍了Granger因果性(Granger Causality, GC)的原理与应用。GC通过统计预测揭示脑区间信息流动方向,超越了传统功能连接的同步性分析。文章还结合图论指标(如度、路径长度、聚类系数和模块化)量化脑网络的拓扑结构,并通过Python代码(MNE和NetworkX库)演示了从EEG数据构建、分析复杂脑网络的完整流程。该研究为理解大脑动态互动、认知任务信息流及神经系统疾

qq_32516809的博客 1567

springboot-RequestMappingHandlerMapping

作用:查看应用请求对应的ur和方法l情况 实例: RequestMappingHandlerMapping mapping =applicationContext.getBean("requestMappingHandlerMapping",RequestMappingHandlerMapping.class); Map<RequestMappingInfo, Handl...

weixin_30577801的博客 1264

Simulink/Requirements Toolbox 学习(一):概述

编写、导入、导出需求并使需求正式化;两种创建需求的模块:需求编辑器、需求透视;描述需求的方式:文本、图像和关键字;通过导入和导出需求文件,与第三方需求管理工具(例如 Microsoft Word、Microsoft Excel®、IBM DOORS和 IBM DOORS Next)集成。涉及模块:Requirements Eidtor、Requirements Table等;

856

9、获取用户的详细信息接口,如果用户没有登录,我们提示用户登录

controller: //获取用户详细信息接口,当用户没有登录,我们强制让其登录 @RequestMapping(value = "get_information.do",method = RequestMethod.POST) @ResponseBody public Server...

weixin_34185364的博客 1703

五步通关!宝塔Linux部署ASP.NET Core的魔法秘籍大公开!

摘要: 本文提供ASP.NET Core应用五步部署攻略,涵盖从环境配置到线上运行的完整流程: 1️⃣ 环境准备:安装宝塔面板、ASP.NET Core运行时及开放端口; 2️⃣ 应用发布:通过dotnet publish生成独立部署包并上传服务器; 3️⃣ Nginx配置:设置反向代理将域名请求转发至应用端口; 4️⃣ 进程守护:使用Supervisor确保应用持续运行; 5️⃣ HTTPS加密:通过宝塔快速申请SSL证书并解决验证路径冲突。 关键点: 强调权限设置(755)、端口开放及反向代理细节; 提

java专栏 969

飞腾平台(FT2000/4 D2000/8)配置GPIO引脚

飞腾平台配置CPU的引脚为GPIO工作模式的方式有永久型和暂时型: - 永久型是通过UEFI中的MmioWrite32函数来实现的,该方法可以在UEFI阶段就对复用引脚的工作模式配置为GPIO,并且在进入操作系统后仍然不会发生便会; - 临时型是通过rw工具,在系统下手动修改复用引脚的工作模式,该方法在系统重启后会失效,所以是暂时型的。

qq_30135687的博客 5617

实战 Java 第1天:从零开始搭建项目,实现第一个接口(IDEA)

学习 Java 第一天:从零开始搭建项目,实现第一个接口(IDEA) 前言 一、从零开始搭建项目 二、从零开始实现第一个接口 三、学习总结 前言 虽然我是一枚妥妥的前端无疑了,但是前端和后端的关系是密不可分的,数据对接是每个前后端的家常便饭,我相信学习一门后端语言会有助于前后端地沟通。好的程序员是不分前后端的。只是侧重点不同而已。所以决定从今天开始,拓展一下语言的宽度,来学一下 Java,在此记录一下学习成果。本文适合 Java 菜鸟看,如果你是一枚老司机,欢迎多多指点。 一、从零开始搭建项目 打开

m0_67391870的博客 455

13、多实例任务(multi instance)

多实例任务,是指一个类型的任务需要循环执行多次,包括串行多实例任务和并行多实例任务。

leyoliu的博客 3203

获取controller方法上的Swagger注解信息

// 注入 @Autowired private RequestMappingHandlerMapping requestMappingHandlerMapping; // 代码 Map<RequestMappingInfo, HandlerMethod> map = requestMappingHandlerMapping.getHandlerMethods(); for (Map.Entry<RequestMappingInfo, HandlerMethod> entry :

qq_37951410的博客 1617

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

# 拿到所有controller_SpringBoot如何获取当前项目全部Controller接口的两种方式

首先我们都知道,Spring的IOC机制,所有的接口和service都存在一个map容器,通过BeanFactory和ApplicationContext可以拿。那么我们可以从这个开刀.方案一(1)想想有什么方法或者接口是能够获取到ApplicationContext的,答案当然是有,Aware接口嘛,找到一个ApplicationContextAware,理论上就能获取到ApplicationC...

weixin_30456153的博客 2387

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SpringBoot如何获取当前项目全部Controller接口的两种方式

业务场景自己想,只分享技术实现。下面的演示由于我为了方便,直接在公司项目中写的,所以一些敏感信息专有名词我要注释,望谅解。 首先我们都知道,Spring的IOC机制,所有的接口和service都存在一个map容器,通过BeanFactory和ApplicationContext可以拿。那么我们可以从这个开刀. 方案一 (1)想想有什么方法或者接口是能够获取到ApplicationContext的,答案当然是有,Aware接口嘛,找到一个ApplicationContextAware,理论上就能获取到Appl

whiteBearClimb的博客 2万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

springboot获取controller的所有接口

springboot获取controller的所有接口

sovereign_jun的博客 2308

controller中获取用户信息的方式

目录1. 利用session获取(不优雅)2. 定义AOP3. 拦截器+方法参数解析器 大多数controller中都需要获得用户信息,根据用户做一些操作 1. 利用session获取(不优雅) 每个controller之前首先通过tokenUtils.getUserByToken(token)获取User。 2. 定义AOP 使用AOP的方法,在进入controller之前,将user赋值到参数中 @Aspect @Component public class UserIdAdvice {

u010659877的专栏 4833

拦截Controller方法,获取方法的注解信息

@Slf4j @Aspect @Component public class ApiOperationAspect extends StaticMethodMatcherPointcutAdvisor implements MethodInterceptor { @Override public Advice getAdvice() { return this; } @Override public ClassFilter getClassFilt

qq_37951410的博客 613

一个接口有多个实现类,Controller方法中动态调用具体的实现类

一个接口有多个实现类,Controller方法中动态调用具体都实现类接口实现类1实现类2ControllerSystem.out.println输出结果 接口 public interface IDemoService { public String test(); } 实现类1 @Service(“demoServiceImpl1”) public class DemoServiceImpl1...

weixin_42799895的博客 4224

获取controller中所有接口路径和名称

获取controller中所有接口路径和名称

weixin_43757027的博客 4141

一个方法获取所有controller的接口及swagger注释并导出excel

获取项目接口及swagger注释并导出excel

kuikuiaile的博客 716

springboot的controller中接口调接口(controller调用controller、controller内部接口互相调用)

场景: 公司封装了一个日志产品,是以切片(AOP)的形式进行日志记录的,也就是在接口返回值中进行日志记录,但是做过导出文件的都知道导出接口是没有返回值的,只是在接口最后把后台写好的文件以文件流的方式放入response中,那么如果需要导出接口也写日志呢?我单独写了个接口什么都不做,只是为了记录日志的,在导出接口中调用这个接口把导出文件的细节信息记录到日志中。 其实就是在Controller中注入本Controller自身,然后通过注入的对象调用同一个Controller中的其他接口,有调用别的Contro

sun_luming的博客 1万+

头信息_如何在Spring REST Controller中获取header信息

1. 概述在这个快速教程中,我们将了解如何在Spring Rest控制器中访问HTTP头信息。首先,我们将使用@RequestHeader注释分别读取头信息,也可以一起读取头信息。之后,我们将深入了解@RequestHeader的属性。2. 访问HTTP头2.1. 简单方法如果我们需要访问一个特定的标题,我们可以配置@RequestHeader的标题名称:@GetMapping("/greetin...

weixin_28929351的博客 3669

获取Controller层接口信息,并组装,返回前端

获取Controller层接口信息,并组装,返回前端描述信息组装在swagger中:在Controller层中的方法上添加如下注解:@ApiOperation(value = “获取所有api资源”)淡然也能自定义注解线上慎用,推测其可能swagger底层使用的也是该原理。

sutingStart的博客 697
上一篇: IDEA控制台乱码
下一篇: SpringCloud组件使用(附代码)
小码农豪大大
博客等级 码龄9年 8378粉丝 28原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码农豪大大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值