java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java反射获取Controller

Java反射获取所有Controller和RestController类的方法

作者:冷雨夜中漫步

这篇文章给大家分享了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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文