我是靠谱客的博主 单身纸鹤,最近开发中收集的这篇文章主要介绍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 扫描某包下所有类的注解并获得注解值所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部