Java笔记-通过反射获取注解及Spring中获取某包下的所有class文件
首先来看看使用反射来获取注解名:
只需在获取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文件相关推荐
- 【JAVA SE】第十七章 反射、注解与Spring事务底层原理
第十七章 反射.注解与Spring事务底层原理 文章目录 第十七章 反射.注解与Spring事务底层原理 一.反射 1.简介 2.意义 3.缺点 4.应用场景 5.反射技术的使用 二.注解 1.概念 ...
- Spring 中获取 request 的几种方法,及其线程安全性分析
概述 在使用Spring MVC开发Web系统时,经常需要在处理请求时使用request对象,比如获取客户端ip地址.请求的url.header中的属性(如cookie.授权信息).body中的数据等 ...
- java定时器任务中获取request对象 @Scheduled 获取request 对象 quartz中获取request对象
java定时器任务中获取request对象 @Scheduled 获取request 对象 quartz中获取request对象 一.问题描述 1.在java定时任务中,使用 @Scheduled 注 ...
- Spring 中获取servletContext及WebApplicationContext以及applicationContext三者之间的关系
spring中获取servletcontext 代码如下,关键是要知道 contextLoader的强大!其它很简单 WebApplicationContext webApplicationConte ...
- 使用dom方式遍历文档||获取元素||从元素中获取数据
使用dom方式遍历文档 获取元素 根据id查询元素getElementById 根据标签获取元素getElementsByTag 根据class获取元素getElementsByClass 根据属性获 ...
- Spring @Autowired 调用别的包下的Bean 解决方法
Spring @Autowired 调用别的包下的Bean 解决方法 参考文章: (1)Spring @Autowired 调用别的包下的Bean 解决方法 (2)https://www.cnblog ...
- mysql获取当月最后一天_mysql中获取本月第一天、本月最后一天、上月第一天、上月最后一天
mysql获取当月最后一天_mysql中获取本月第一天.本月最后一天.上月第一天.上月最后一天等等 转自: https://blog.csdn.net/min996358312/article/det ...
- Java单元测试、反射、注解
Junit 单元测试: 测试分类: 1.黑盒测试:不需要写代码.给输入值,看程序是否能够输出期望的值. 2.白盒测试:需要写代码,关注程序具体的执行流程 Junit使用:白盒测试 步骤: 定义一个包: ...
- 【java笔记】Stream流(2):获取流的两种方法
获取一个流通常有两种方式: ●所以的Collection集合都可以通过stream默认方法获取流 ●Stream接口的静态方法of可以获取数组对应的流 根据Collection集合获取Stream流 ...
最新文章
- VS 2008 .NET Framework 3.5 Training Kit
- showModalDialog弹窗
- 如何使用DotNet 2.0中的应用程序配置 Settings.settings
- 汇编语言(三十二)之读写文件
- DEV控件Grid显示行号
- 电脑时钟倒计时_倒计时久坐休息提醒工具
- Create umbraco website-On the road of umbraco (1)
- 计算机控制电子点火系控制电路分析,点火示波器的工作原理 用示波器诊断点火系故障方法...
- java实现马尔科夫链,马尔科夫链算法的JAVA实现
- Owin Katana 的底层源码分析
- 数值分析——自适应辛普森积分
- SwiftUI脑洞大开打造实时显示当前值的Slider(滑动器)
- 这篇3万字的Java后端面试总结,面试官看了瑟瑟发抖(汇总)
- ATA并口硬盘接口图解
- 一个IT人的辞职信:怀着梦想去远行!
- 线上故障分析-故障分级,原因,分类,混沌工程,排除方法
- 【MATLAB-app】系列教程(含视频)第2课_实例:使用appdesigner 制作简单的计算器
- 学习日记——ESP8266SNTP
- JavaScript实现圆周运动
- 智慧高速解决方案 PPT