zoukankan      html  css  js  c++  java
  • Reflections 介绍

    Reflections 介绍

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

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

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

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

    Reflections 依赖 GoogleGuava 库和 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

  • 相关阅读:
    javascript Date.prototype
    Mac 安装node.js
    element-ui适配pad 遇到的问题
    GCD实现异步任务同步的两种方式
    颜色判断
    ARC下方法重复问题
    检查IDFA的方法
    mac 下安装ecplise
    注释使用
    Xcode 8.0 控制台打印问题解决办法
  • 原文地址:https://www.cnblogs.com/syncmr/p/10523298.html
Copyright © 2011-2022 走看看