打印spring boot的controller里定义的路由

本文详细介绍了如何在Spring Boot的Controller中查看和打印定义的路由,包括相关代码示例,实际运行效果展示,以及设计时的重要考虑点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介
controller类里的方法前@RequestMapping注释的路由信息获取,如下图所示
相关代码
RouteList.java
package com.ffan.util;

import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
import org.springframework.core.type.filter.AnnotationTypeFilter;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Arrays;
import java.util.Set;

public class RouteList {
    public static void main(String[] args) throws ClassNotFoundException {
        ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false);

        scanner.addIncludeFilter(new AnnotationTypeFilter(Controller.class));

        Set<BeanDefinition> beanSet = scanner.findCandidateComponents("com.ffan.smartlife.controller");

        for (BeanDefinition def : beanSet) {
            Class<?> clazz = Class.forName(def.getBeanClassName());
            Arrays.stream(clazz.getDeclaredMethods()).map(m -> m.getAnnotation(RequestMapping.class)).filter(
                    a -> a != null && a.value().length > 0).forEach(
                    a -> Arrays.stream(a.value()).forEach(
                            p -> {
                                System.out.println(p);
                            }
                    ));
        }
    }
}

效果图
spring boot route list
设计要点
  • 通过ClassPathScanningCandidateComponentProvider获取spring boot框架的元数据
  • 获取controller信息
  • 获取controller里的注解RequestMapping信息
参考链接
https://qiita.com/shigeshibu44/items/886efb44c8c573c3ba6b

查看原文:http://www.huuinn.com/archives/195
更多技术干货:风匀坊
关注公众号:风匀坊
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值