我是靠谱客的博主 单身纸鹤,这篇文章主要介绍Java 扫描某包下所有类的注解并获得注解值,现在分享给大家,希望可以做个参考。

前言

  之前,设计的一个大型后台的多模块项目,没有按照模块化分库,每个模块的表都放在同一个模块里。公司现在的开发新项目有类似功能,都把之前的模块打成jar包引入新的项目代码中,但是你不熟悉这个模块都用到那些表,之前建表的时候,也没有按照模块名作为前缀去建表,导致迁移表的时间都浪费在 分辨那些表有用到上面。

  下面运用反射去扫描模块包下,数据库entity类的@tablename注解的值,可以快速打印出该模块引用的表有哪些,代码实现如下。

pom文件引入依赖

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

代码实现

    public static void main(String[] args) {
        // 要扫描的包
        String packageName = "org.springblade.system";
        //反射
        Reflections ref = new Reflections(packageName);
        // 获取扫描到的标记注解的集合
        Set<Class<?>> set = ref.getTypesAnnotatedWith(TableName.class);
        System.out.println("--------start-------------");
        for (Class<?> c : set) {
            // 循环获取标记的注解
            TableName annotation = c.getAnnotation(TableName.class);
            if(annotation!=null){
                // 打印注解中的内容
                System.out.println("表名:"+annotation.value());
            }

        }
        System.out.println("--------over-------------");
    }

控制台输出

最后

以上就是单身纸鹤最近收集整理的关于Java 扫描某包下所有类的注解并获得注解值的全部内容,更多相关Java内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(132)

评论列表共有 0 条评论

立即
投稿
返回
顶部