Reflections 介绍

研究Spring扫包原理的时候,在网上查阅相关资料的时候,发现使用Reflections库可以实现扫包。

Reflections 通过扫描 classpath,索引元数据,允许在运行时查询这些元数据,也可以保存收集项目中多个模块的元数据信息,值得一提的是,这东西在扫描的时候,连依赖的jar包都不放过。

使用 Reflections 可以查询以下元数据信息:

1)获得某个类型的所有子类型
2)获得标记了某个注解的所有类型/成员变量,支持注解参数匹配。
3)使用正则表达式获得所有匹配的资源文件
4)获得所有特定签名(包括参数,参数注解,返回值)的方法

Reflections 依赖 Google 的 Guava 库和 Javassist 库。

Maven 项目导入

<dependency><groupId>org.reflections</groupId><artifactId>reflections</artifactId><version>0.9.11</version>
</dependency>

通常用法:

Reflections reflections = new Reflections("com.my", new SubTypesScanner(false));
Set<Class<? extends T>> subTypesOf = reflections.getSubTypesOf(T.class);
Set<Class<?>> annotated = reflections.getTypesAnnotatedWith(T.class);

Reflections还有很多类似的反射类操作(如扫描方法、扫描参数等),可以说是应有尽有了。有兴趣的小伙伴们可以参考Reflection库的源码或者官方文档,这里就不详述了。

参考地址:https://github.com/ronmamo/reflections

转载于:https://www.cnblogs.com/syncmr/p/10523298.html

Reflections 介绍相关推荐

  1. Reflections 详细介绍

    Reflections 详细介绍 Reflections 通过扫描 classpath,索引元数据,允许在运行时查询这些元数据,也可以保存收集项目中多个模块的元数据信息. 使用 Reflections ...

  2. Reflections一个强大的类扫描工具介绍

    目录 一.Reflections能够做什么 二.如何使用 2.1. 在maven项目中添加如下依赖 2.2.使用示例 2.2.1.实例化 2.2.2.根据父类获取所有子类 2.2.3.根据接口获取所有 ...

  3. 【数据集介绍】The Idiap Research Institute REPLAY-Mobile Database

    [时间]2018.11.14 [数据集介绍]The Idiap Research Institute REPLAY-Mobile Database 概述 本文是对数据集REPLAY-Mobile Da ...

  4. 3D音频再现理论研究(一)---3D音频技术历史介绍(转)

    1992年,创新推出第一款双声道音效卡--Sound Blaster 16,这是一款拥有16bit采样和44.1kHz的采样速率的声卡.该款产品号称拥有CD一样的高质回放表现,声卡的音质从此获得了从量 ...

  5. 计算机缩写术语完全介绍 By 001pc @ 1997.10.1-2004-6-12

    计算机缩写术语完全介绍By 001pc @ 1997.10.1-2004-6-12 在使用计算机的过程中,你可能会碰到各种各样的专业术语,特别是那些英文缩写常让我们不知所云,下面收集了各方面的词组,希 ...

  6. 《Non-contact Eye Gaze Tracking System by Mapping of Corneal Reflections》论文阅读

    题目:Non-contact Eye Gaze Tracking System by Mapping of Corneal Reflections 作者:Dong Hyun Yoo, Jae Heon ...

  7. 常见棋类AI复杂度介绍

    常见棋类AI复杂度介绍 本帖子是扫盲帖子,是关于棋类复杂度的介绍 这里介绍五种常见棋类:黑白棋,五子棋,中国象棋,国际象棋,围棋 黑白棋:相当经典的游戏,因为棋盘为8X8大小,且每一步变化不多,估算的 ...

  8. bfgs sherman_介绍Sherman(第2部分)–一个Unity项目,其中包含动画师的实时毛发,HDRP和Visual FX Graph

    bfgs sherman Created by the Emmy-winning team that brought you Baymax Dreams, Sherman is a new real ...

  9. 计算机英文术语完全介绍

    计算机英文术语完全介绍 1.CPU 3DNow!(3D no waiting) ALU(Arithmetic Logic Unit,算术逻辑单元) AGU(Address Generation Uni ...

最新文章

  1. MySQL为Null会导致5个问题,个个致命!
  2. python循环语句-python基础-循环语句(5)
  3. OpenCV 4.2.0 发布,Intel 开源的计算机视觉库
  4. ADS_LPC2103开发板SPI 4位数码管测试试验
  5. spyder 护眼背景
  6. Java PipedInputStream close()方法与示例
  7. js页面间通信方法实现
  8. 1.1 线性方程组(线性代数及其应用-第5版-系列笔记)
  9. 2021年网络工程师考试大纲
  10. 跑步c语言,小程序 跑步 记录跑步代码 记时间和位置更新
  11. Words study
  12. python中binomial_Python Numpy random.binomial() 二项分布
  13. 七号信令:MTP层简介
  14. 入门首选,Requests 库的基本使用
  15. .jar!/BOOT-INF/classes!/ jar包无法重启了,求大神帮忙解答,谢谢!
  16. 天猫首创“服务360”平台 赋能商家提升用户体验
  17. 信息技术领域,我们如何进行算法创新?
  18. 纯色图片颜色渐变动画
  19. MacOS M1芯片 安装eclipse和SVN
  20. 关于chm提示 已取消到该网页的导航的解决方法(转载,忘记出处)

热门文章

  1. 虚拟机访问互联网--Net模式
  2. 开发者反响热烈,阿里云免费试用产品增至 80 多款!
  3. LNMP环境搭建总结
  4. 新型机器人闯入职场:到底是工作缔造者还是工作终结者?--华盛顿邮报
  5. qB刚刚安装无法下载
  6. mysql infile ignore_mysql导入数据load data infile用法(转)
  7. THINKPHP5.1多数据库配置
  8. mysql 怎么转换用户_mysql切换用户
  9. 为什么不用intel处理器
  10. android开发之Monkey测试_自动化测试_看看你的应用够不够健壮