Java反射获取所有Controller和RestController类的方法
更新时间:2023年08月15日 11:14:32 作者:冷雨夜中漫步
这篇文章给大家分享了Java反射获取所有Controller和RestController类的方法,文中有详细的代码示例讲解,具有一定的参考价值,需要的朋友可以参考下
Java反射获取所有Controller和RestController类的方法
引入三方反射工具Reflections
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.10.2</version>
</dependency>利用反射获取指定包下的Controller类
public class ControllerClassHolder {
public static final Reflections REFLECTION = new Reflections("com.example.controller");
public static final Set<Class<?>> CLASSES;
static {
CLASSES = REFLECTION.getTypesAnnotatedWith(Controller.class);
CLASSES.addAll(REFLECTION.getTypesAnnotatedWith(RestController.class);)
}
}获取Controller方法
每个http请求基本都会使用@RequestMapping注解
List<Method> methods = new ArrayList<>();
for (Class<?> controllerClass : CLASSES) {
Method[] declaredMethods = controllerClass.getDeclaredMethods();
Set<Method> methods = Arrays.stream(declaredMethods)
.filter(m -> m.getAnnotation(RequestMapping.class) != null)
.collect(Collectors.toSet());
}到此这篇关于Java反射获取所有Controller和RestController类的方法的文章就介绍到这了,更多相关Java反射获取Controller内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot学习篇之@Valid与@Validated的区别
@Valid是使用Hibernate validation的时候使用,@Validated是只用Spring Validator校验机制使用,下面这篇文章主要给大家介绍了关于SpringBoot学习篇之@Valid与@Validated区别的相关资料,需要的朋友可以参考下2022-11-11


最新评论