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 2.6.x整合springfox 3.0报错问题及解决方案

    SpringBoot 2.6.x整合springfox 3.0报错问题及解决方案

    这篇文章主要介绍了SpringBoot 2.6.x整合springfox 3.0报错问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 使用 Spring Boot Admin 监控应用状态的详细过程

    使用 Spring Boot Admin 监控应用状态的详细过程

    这篇文章主要介绍了使用 Spring Boot Admin 监控应用状态,该模块采集应用的内部信息,并暴露给外部的模块,支持 HTTP 和 JMX,并可以与一些第三方监控系统(如 Prometheus)整合,需要的朋友可以参考下
    2022-09-09
  • 如何基于ssm框架实现springmvc拦截器

    如何基于ssm框架实现springmvc拦截器

    这篇文章主要介绍了如何基于ssm框架实现springmvc拦截器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • SpringCloud微服务之Hystrix组件实现服务熔断的方法

    SpringCloud微服务之Hystrix组件实现服务熔断的方法

    微服务架构特点就是多服务,多数据源,支撑系统应用。这样导致微服务之间存在依赖关系。这篇文章主要介绍了SpringCloud微服务之Hystrix组件实现服务熔断的方法,需要的朋友可以参考下
    2019-08-08
  • 解决springboot 2.x集成log4j2调试日志无法关闭的问题

    解决springboot 2.x集成log4j2调试日志无法关闭的问题

    这篇文章主要介绍了解决springboot 2.x集成log4j2调试日志无法关闭的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java中使用装饰设计模式实现动态增强对象功能

    Java中使用装饰设计模式实现动态增强对象功能

    装饰设计模式是Java中一种常用的设计模式,它通过动态地将功能透明地附加到对象上,以扩展对象的功能。装饰设计模式主要应用于需要动态、透明地增强对象功能的场景。在Java中,装饰设计模式可通过继承、接口和代理等方式实现
    2023-04-04
  • Java使用JNDI连接数据库的实现方法

    Java使用JNDI连接数据库的实现方法

    本文主要介绍了Java使用JNDI连接数据库的实现方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • SpringBoot接口正确接收时间参数的几种方式

    SpringBoot接口正确接收时间参数的几种方式

    这篇文章主要给大家介绍了关于SpringBoot接口正确接收时间参数的相关资料,文中通过代码示例介绍的非常详细,对大家学习或者使用springboot具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • 详解Java 类的加载机制

    详解Java 类的加载机制

    这篇文章主要介绍了Java 类的加载机制,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-08-08
  • SpringBoot事务不回滚的解决方案

    SpringBoot事务不回滚的解决方案

    这篇文章主要介绍了SpringBoot事务不回滚的解决方案的相关资料,需要的朋友可以参考下
    2022-09-09

最新评论