一个方法获取所有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,不用自己写代码,但需要根据公司业务进行部分修改。 阅读详情

相关推荐

从建模到调参:基于Simulink的两轮差速机器人轨迹跟踪PID控制全流程解析

本文详细解析了基于Simulink的两轮差速机器人轨迹跟踪PID控制全流程。从运动学建模入手,对比了基于距离与基于位置偏差的两种控制策略,并重点阐述了高精度轨迹跟踪的控制器设计、Simulink仿真搭建及PID参数整定方法,为移动机器人运动控制提供了完整的仿真实践指南。

weixin_29169505的博客 314

Springboot项目获取所有的接口

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

小石潭记丶 5740

KALI虚拟机挂代理教程

需要你本地挂了代理,然后通过虚拟机连接本机代理端口,不说废话了,直接说怎么做了。 1.查看选项设置中自己的小飞机的本地端口是多少:(默认是1080) 2.本机win+r打开cmd,输入ipconfig查看本地ip,我的本地ip是192.168.0.107: 2.打开kali虚拟机,编辑ProxyChains配置文件: vi /etc/proxychains.conf 3.在文件末尾的ProxyList中添加物理机本地ip和1080端口作为代理地址: 4.保存并退出即可: esc :wq 回车 5.

qq_34853514的博客 3万+

SpringMVC原理学习(一)RequestMappingHandlerMapping 与 RequestMappingHandlerAdapter

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

小鲁蛋的博客 1717

【详细】芯片设计全流程(包括每个流程需要用到的工具以及需要参与的工作人员)

一颗芯片的诞生经历了设计、制造和测试(分别对应集成电路产业链的设计业、制造业和封测业),而每一步都包含了复杂的步骤和流程。 图0-1 集成电路产业链 现在,我们重点介绍芯片设计的全流程以及每个流程需要用到的设计工具和需要参与的工作人员。 一、IC设计分类 首先对IC设计的分类做个介绍,如图1-1所示。 图1-1 IC设计分类 如图1-1所示,IC设计可以粗分为数字IC设计和射频/模拟IC设计,数字IC设计又可分为ASIC设计和FPGA/CPLD设计,此外还有一部分IC设计.

qq_36045093的博客 8万+

攻防世界 misc题GFSJ1129-【您看我还有机会吗?】

我们发现了隐藏内容,一开始我以为那个英文就是flag,提交后发现不对,然后我想只有一张图片然后图片上的隐写内容又不是flag,那必定还有什么文件被隐藏了,于是我们打开VMware并启动Ubuntu,使用binwalk分析一下有没有隐藏文件,我们要在Terminal中分析,如下。我们发现里面有一个flag.txt文件,我们尝试提取里面内容,但发现又要密码,我们想起了之前图片上的隐藏内容,我们将那段英文输入(包括空格和符号,在VMware中输入密码不会有显示,你看到的就像没输入一样),然后我们看到如下。

大数据专业,关注 AI 安全与数学建模。记录 Web 安全、对抗攻击、隐私保护等安全实践,以及从经典模型到智能方法的建模思考。用数学思维理解 AI,用 AI 方法反哺安全与建模。 1097

springboot-RequestMappingHandlerMapping

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

weixin_30577801的博客 1264

Windows原生与WSL2环境下OpenClaw性能与兼容性的对比分析研究

本文对比分析了Windows原生环境与WSL2环境下运行OpenClaw的性能与兼容性。Windows原生环境提供深度系统集成、图形界面支持和硬件加速优势,适合需要Windows生态集成的用户;WSL2则提供接近原生Linux的性能体验,兼容Linux工具链,适合开发者和跨平台需求。文章详细介绍了两种环境下的推荐硬件配置、系统版本选择及必备工具,并提供了具体的部署步骤指南。研究表明,两种环境各有适用场景,用户可根据需求选择最适合的部署方式。

一键难忘的博客 1218

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

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

weixin_34185364的博客 1703

Python爬虫实战:基于最新技术栈的晋江文学城小说爬取

本文将详细介绍如何使用Python最新技术栈构建一个高效的晋江文学城小说爬虫。我们将从爬虫基础知识讲起,逐步深入到反爬机制应对、分布式爬虫设计以及数据存储优化等高级话题。文章包含完整的代码实现,使用aiohttp+asyncio实现异步爬取,Playwright处理动态渲染,并结合Redis实现分布式任务队列。本文旨在为读者提供一个全面的现代Python爬虫开发指南。网络爬虫(Web Crawler)是一种自动抓取互联网信息的程序,广泛应用于搜索引擎、数据分析和内容聚合等领域。

2201_76125261的博客 872

STM32CubeMX之DAC产成正弦波

“在之前的文章中曾经介绍过用TIM产生PWM做DAC用,STM32定时器输出PWM做DAC。部分型号的STM32单片机内部有专用的DAC,本篇文章将介绍如何用内部DAC+DMA产生正弦波...

zhang062061的专栏 1513

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

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

m0_67391870的博客 455

Midscene.js(1):Chrome 插件实战之基于 AI 驱动 WEB UI 自动化测试「喂饭教程」

Midscene.js 是一款开源的AI驱动UI自动化工具,支持自然语言交互、数据提取、断言验证等多种功能。自然语言交互。本文将以 Midscene.js Chrome 插件为例,带你从零上手,体验如何用最简单的方式实现高效、智能的UI自动化测试。

blues_C的博客 4404

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

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

qq_37951410的博客 1617

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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

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

weixin_30456153的博客 2387

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

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

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

whiteBearClimb的博客 2万+

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

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

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、付费专栏及课程。

余额充值