实现导出所有用到@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<Class<?>> 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);
            }
        }
}

	/**
     * 检查方法
     * 判断几种请求方式是否存在URL
     *
     * @param method
     * @return
     */
    private static boolean checkUrlExist(Method method) {
        PostMapping postMapping = method.getAnnotation(PostMapping.class);

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值