打印spring boot的controller里定义的路由
程序员文章站
2022-06-17 13:04:07
...
简介
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);
}
));
}
}
}
效果图
设计要点
- 通过ClassPathScanningCandidateComponentProvider获取spring boot框架的元数据
- 获取controller信息
- 获取controller里的注解RequestMapping信息
参考链接
https://qiita.com/shigeshibu44/items/886efb44c8c573c3ba6b查看原文:http://www.huuinn.com/archives/195
更多技术干货:风匀坊
关注公众号:风匀坊
推荐阅读
-
spring-boot-2.0.3不一样系列之番外篇 - 自定义session管理,绝对有值得你看的地方
-
Spring Boot自定义错误视图的方法详解
-
Spring Boot配置AOP打印日志的全过程
-
Spring Boot从Controller层进行单元测试的实现
-
Spring boot创建自定义starter的完整步骤
-
spring boot之使用spring data jpa的自定义sql方式
-
Spring Boot/VUE中路由传递参数的实现代码
-
在spring boot的controller层里使用cookie
-
Spring Boot Bean的使用,@Repository,@Service,@Controller,@Component
-
【Spring boot】运行Controller的两种方式