首先来看看使用反射来获取注解名:

只需在获取class后调用getAnnotation方法即可,如下

这里是获取JPA映射b表名,Table.class,使用下面这个可以获取表名

import javax.persistence.Table;annotation.name()

这里的item是一个Object,如果是class,就会得到得到不一样的,但可以强转得到

这里的aClass是直接扫描的,class文件得到的

下面是Spring中获取某包下所有class文件。直接贴下代码把:

    private List<String> getAllEntity() throws IOException, ClassNotFoundException {List<String> ret = new ArrayList<>();PathMatchingResourcePatternResolver pathMatchingResourcePatternResolver = new PathMatchingResourcePatternResolver();CachingMetadataReaderFactory cachingMetadataReaderFactory = new CachingMetadataReaderFactory();Resource[] resources = pathMatchingResourcePatternResolver.getResources("classpath*:com/xxx/xxx/object/**/*.class");ClassLoader loader = ClassLoader.getSystemClassLoader();for (Resource resource : resources) {MetadataReader reader = cachingMetadataReaderFactory.getMetadataReader(resource);String className = reader.getClassMetadata().getClassName();Class aClass = loader.loadClass(className);//to do someing..................}}

PathMatchingResourcePatternResolver获取资源文件。

CachingMetadataReaderFacotry元数据集缓存读取工厂,用于读取元数据的。

MetadataReader元数据集缓存工厂读取的数据,他里面使用getClassMetadata().getClassName()可以获取class的名字。

ClassLoader通过className找到对应的class。

上面是通过java自解码文件的方法,扫描包中的类。

Java笔记-通过反射获取注解及Spring中获取某包下的所有class文件相关推荐

  1. 【JAVA SE】第十七章 反射、注解与Spring事务底层原理

    第十七章 反射.注解与Spring事务底层原理 文章目录 第十七章 反射.注解与Spring事务底层原理 一.反射 1.简介 2.意义 3.缺点 4.应用场景 5.反射技术的使用 二.注解 1.概念 ...

  2. Spring 中获取 request 的几种方法,及其线程安全性分析

    概述 在使用Spring MVC开发Web系统时,经常需要在处理请求时使用request对象,比如获取客户端ip地址.请求的url.header中的属性(如cookie.授权信息).body中的数据等 ...

  3. java定时器任务中获取request对象 @Scheduled 获取request 对象 quartz中获取request对象

    java定时器任务中获取request对象 @Scheduled 获取request 对象 quartz中获取request对象 一.问题描述 1.在java定时任务中,使用 @Scheduled 注 ...

  4. Spring 中获取servletContext及WebApplicationContext以及applicationContext三者之间的关系

    spring中获取servletcontext 代码如下,关键是要知道 contextLoader的强大!其它很简单 WebApplicationContext webApplicationConte ...

  5. ​​​​​​​​​​​​​​使用dom方式遍历文档||获取元素||从元素中获取数据

    使用dom方式遍历文档 获取元素 根据id查询元素getElementById 根据标签获取元素getElementsByTag 根据class获取元素getElementsByClass 根据属性获 ...

  6. Spring @Autowired 调用别的包下的Bean 解决方法

    Spring @Autowired 调用别的包下的Bean 解决方法 参考文章: (1)Spring @Autowired 调用别的包下的Bean 解决方法 (2)https://www.cnblog ...

  7. mysql获取当月最后一天_mysql中获取本月第一天、本月最后一天、上月第一天、上月最后一天

    mysql获取当月最后一天_mysql中获取本月第一天.本月最后一天.上月第一天.上月最后一天等等 转自: https://blog.csdn.net/min996358312/article/det ...

  8. Java单元测试、反射、注解

    Junit 单元测试: 测试分类: 1.黑盒测试:不需要写代码.给输入值,看程序是否能够输出期望的值. 2.白盒测试:需要写代码,关注程序具体的执行流程 Junit使用:白盒测试 步骤: 定义一个包: ...

  9. 【java笔记】Stream流(2):获取流的两种方法

    获取一个流通常有两种方式: ●所以的Collection集合都可以通过stream默认方法获取流 ●Stream接口的静态方法of可以获取数组对应的流 根据Collection集合获取Stream流 ...

最新文章

  1. VS 2008 .NET Framework 3.5 Training Kit
  2. showModalDialog弹窗
  3. 如何使用DotNet 2.0中的应用程序配置 Settings.settings
  4. 汇编语言(三十二)之读写文件
  5. DEV控件Grid显示行号
  6. 电脑时钟倒计时_倒计时久坐休息提醒工具
  7. Create umbraco website-On the road of umbraco (1)
  8. 计算机控制电子点火系控制电路分析,点火示波器的工作原理 用示波器诊断点火系故障方法...
  9. java实现马尔科夫链,马尔科夫链算法的JAVA实现
  10. Owin Katana 的底层源码分析
  11. 数值分析——自适应辛普森积分
  12. SwiftUI脑洞大开打造实时显示当前值的Slider(滑动器)
  13. 这篇3万字的Java后端面试总结,面试官看了瑟瑟发抖(汇总)
  14. ATA并口硬盘接口图解
  15. 一个IT人的辞职信:怀着梦想去远行!
  16. 线上故障分析-故障分级,原因,分类,混沌工程,排除方法
  17. 【MATLAB-app】系列教程(含视频)第2课_实例:使用appdesigner 制作简单的计算器
  18. 学习日记——ESP8266SNTP
  19. JavaScript实现圆周运动
  20. 智慧高速解决方案 PPT

热门文章

  1. Ubuntu 下修改 Could not reliably determine the serve
  2. 微软五月份安全补丁发布
  3. 佛说 :程序员你与我有缘。
  4. 浩鲸科技与帆软达成战略合作,重磅推出数据中台联合解决方案
  5. 手把手教你制作好看实用的可视化驾驶舱
  6. 30人团队的数据架构师:谈谈数据湖这个风口吧,你们说的都没价值
  7. 传统数仓不够怎么办?不妨看看这个银行的混合数仓实践,建议收藏
  8. 内向的人这样改善人际关系(四)
  9. 05CRecordset类
  10. 程序员想趁头发还在找个女友,标准:是女的就行