项目地址
https://gitee.com/Anntly/jboom-wheel/tree/master/jboom-converter
实现思路
- 使用自定义注解标记接口、参数的映射关系,转换的方式等
- 接口定义转换方法,编译期生成转换方法的实现,选用的是java的apt在编译期进行代码生成
- java代码生成可选用模板解析(freemarker,thymeleaf等),codeMode,javapoet,此案例采用的是javapoet
如何使用
- 代码打包到本地仓库,或者deploy到私服
- 引用包,并配置buildPlugin,如果用到lombok,需要配置到lombok后面
<dependency>
<groupId>com.jboom</groupId>
<artifactId>jboom-converter</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>17</source>
<target>17</target>
<annotationProcessorPaths>
<path>
<groupId>com.jboom</groupId>
<artifactId>jboom-converter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
- 执行mvn clean compile 会在target中生成接口的实现方法,在同包的impl包下,类名为xxxImpl
技术实现
后面出对应的博客介绍相关技术