栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

实现导出所有用到@Controller的方法的URL

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

实现导出所有用到@Controller的方法的URL

JAVA自带的常用注解了解一下:
https://www.runoob.com/w3cnote/java-annotation.html

说一下思路:

1.扫描包
2.再找到所有的Class文件,带有@Controller注解的Class文件
3.再找到所有的带有@PostMapping的方法

注意:如果你想要到拿到@GetMapping/@PutMapping/@DeleteMapping/@PatchMapping的URL的话需要注意,这四种的URL如果采用标准的RESTFUL风格,是动态的URL,所以建议使写一个自定义的注解来表明这个Method的URL。

import cn.hutool.core.util.ClassUtil;
 public static void main(String[] args) {
        Set> classes = ClassUtil.scanPackage("com.alibaba.finance.smms");
        for (Class aclass : classes) {
            Controller aclassController = AnnotationUtil.getAnnotation(aclass, Controller.class);
            RequestMapping interfaceAnnotation = AnnotationUtil.getAnnotation(aclass, RequestMapping.class);
            //如果接口没有带有@Controller/@RestController或@RequestMapping,则返回空
            if (null == aclassController || null == interfaceAnnotation) {
                continue;
            }
            Method[] methods = aclass.getMethods();
            for (Method method : methods) {
                if (!checkUrlExist(method)) {
                    continue;
                }
                String url = interfaceAnnotation.value()[0] + method.getAnnotation(PostMapping.class).value()[0];
                System.out.println("url=" + url);
            }
        }
}

	
    private static boolean checkUrlExist(Method method) {
        PostMapping postMapping = method.getAnnotation(PostMapping.class);

        if ( null == postMapping) {
            return false;
        }
        return true;
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/459979.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号