之前写的文章现在都看不上了,为了提高点博客的质量还是写一点东西吧
先说一下:
注解处理器
编译时自动运行注解处理器,扫描 编译 和处理注解,可自定义;以java代码或字节码作为输入,生成文件(java代码),通过反射调用新生成的文件中的类或方法,jvm编译
继承abstractProcessor,重写方法:
- init(ProcessingEnvironment processingEnv)初始化,参数提供了element,filer,messager等工具,elements程序元素,例如包 类和方法,每个element代表静态、语言级的构件,即结构化文本,不可运行
- getSupportedAnnotationTypes()指定处理器注册给哪一个注解,支持*个类型的注解且需合法全名
- getSupportedSourceVersion 指定java版本
- process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv)代码生成,扫描处理注解,生成java代码
https://blog.csdn.net/xfxyy_sxfancy/article/details/44275549#t3
https://blog.csdn.net/HaveFerrair/article/details/52182927
为什么说注解处理器?
答:mapstruct是java注释处理器,用于生产类型安全的bena映射类
mapstruct
DO业务实体对象(对内),DTO数据传输对象(对外),目前接触的DO和DTO主干都是一样的,虽然不想但该有还得有,这样的话DO和DTO的转换就是一个问题了,so WULI MapStruct,只需要定义Mapper接口
定义mapper接口:声明需要的映射方法,编译期间mapstruct将生产接口实现就自动实现了映射接口,当然还需要引入依赖,先送上官网地址https://mapstruct.org/
https://blog.csdn.net/zhige_me/article/details/80699784写的不错,欢迎关注志哥公众号
就这样吧,源码什么的推荐自己去读,最近心有些累了,眼睛似乎也更近视了,此刻犹如行尸走肉般地期待着明年自己送给自己的生日礼物
反射
在运行状态中,能够知道类all属性和方法,对任意对象,能够调用它的方法和属性:动态获取信息及调用方法
java类执行历程:https://blog.csdn.net/h2604396739/article/details/83109292
https://www.cnblogs.com/chanshuyi/p/head_first_of_reflection.html
https://blog.csdn.net/h2604396739/article/details/83825148
https://www.jianshu.com/p/9be58ee20dee