概述
前言
之前,设计的一个大型后台的多模块项目,没有按照模块化分库,每个模块的表都放在同一个模块里。公司现在的开发新项目有类似功能,都把之前的模块打成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 扫描某包下所有类的注解并获得注解值所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复