Spring 如何通过反射获取controller 包下所有的类,以及类上的注解

简介: Spring 如何通过反射获取controller 包下所有的类,以及类上的注解

直接上代码:

  @Test
    void contextLoads() throws IOException, ClassNotFoundException {
        //spring 工具类可以获取指定路径表的全部类
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        //监听的包如下:
        String basePackage = "com.chen.jwt.controller";
        String resourcePattern = "/**/*.class";
        String pattern = resolver.CLASSPATH_ALL_URL_PREFIX + ClassUtils
                .convertClassNameToResourcePath(basePackage) + resourcePattern;
        //获取包下面指定的类资源
        Resource[] resources = resolver.getResources(pattern);
        //MetadataReader 工厂类
        MetadataReaderFactory factory = new CachingMetadataReaderFactory(resolver);
        for (Resource resource: resources) {
            //用来读取类的信息
            MetadataReader reader = factory.getMetadataReader(resource);
            //扫描到的class
            String className = reader.getClassMetadata().getClassName();
            //获取到类名
            Class<?> clazzName = Class.forName(className);
            System.out.println(clazzName);
            //判断类名上是否有  @UserLoginToken 注解
            UserLoginToken annotation = clazzName.getAnnotation(UserLoginToken.class);
            if (annotation != null) {
                System.out.println("类中的注解:"+ annotation.annotationType().getName());
            }
        }
目录
相关文章
|
12天前
|
XML Java 数据格式
SpringBoot入门(8) - 开发中还有哪些常用注解
SpringBoot入门(8) - 开发中还有哪些常用注解
30 0
|
19天前
|
XML JSON Java
SpringBoot必须掌握的常用注解!
SpringBoot必须掌握的常用注解!
42 4
SpringBoot必须掌握的常用注解!
|
21天前
|
存储 缓存 Java
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
67 2
|
21天前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
34 1
|
15天前
|
存储 安全 Java
springboot当中ConfigurationProperties注解作用跟数据库存入有啥区别
`@ConfigurationProperties`注解和数据库存储配置信息各有优劣,适用于不同的应用场景。`@ConfigurationProperties`提供了类型安全和模块化的配置管理方式,适合静态和简单配置。而数据库存储配置信息提供了动态更新和集中管理的能力,适合需要频繁变化和集中管理的配置需求。在实际项目中,可以根据具体需求选择合适的配置管理方式,或者结合使用这两种方式,实现灵活高效的配置管理。
12 0
|
XML Java 数据格式
spring添加包扫描的方式
spring添加包扫描的方式
|
2月前
|
SQL 监控 druid
springboot-druid数据源的配置方式及配置后台监控-自定义和导入stater(推荐-简单方便使用)两种方式配置druid数据源
这篇文章介绍了如何在Spring Boot项目中配置和监控Druid数据源,包括自定义配置和使用Spring Boot Starter两种方法。
|
1月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
167 2
|
13天前
|
缓存 IDE Java
SpringBoot入门(7)- 配置热部署devtools工具
SpringBoot入门(7)- 配置热部署devtools工具
26 2
 SpringBoot入门(7)- 配置热部署devtools工具
|
9天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
21 2
下一篇
无影云桌面