mapstruct原理

MapStruct是基于JSR 269的Java注解处理器,

org.mapstruct:mapstruct:包含了必要的注解,例如@Mapping;在Java 8或更高版本中,使用
org.mapstruct:mapstruct-jdk8,而不是利用Java 8中引入的语言进行改进。
org.mapstruct:mapstruct-processor:包含生成映射器实现的注解处理器

在编译过程中会根据自己的Mapper接口生成对应的实现类,比如上面定义的UserMapStruct类
根据@Mapper标记处理器的入口,利用mapstruct-processor的注解处理器处理映射器实现,

 

查看源码发现,主要就是利用JSR 269的java注解处理器,通过入口@Maapper利用写好的模板工厂类与类似jsp的模板引擎,具体处理利用mapstruct-processor注解处理器生成是转换得实现类。

 

 

 

 

 

具体源码大家自行研究,我这里不做过多介绍。
总之一句话,没用反射就是快。还是那句话,若做项目之前不进行约束,胡乱命名各种属性的话,还是不建议使用此快捷工具,因为无规矩不成方圆,乱七八糟的项目,不如手动set,get

 

posted @ 2022-01-26 21:33  余生请多指教ANT  阅读(549)  评论(0编辑  收藏  举报