前言:博主的第二个idea插件审核通过啦 (第一个插件是equals inspection)
idea的plugin marketplace搜swagger excel doc即可下载安装
功能:通过文档注释生成easy Excel或swagger注解
(快捷键alt+ins)
实际场景:我们在写实体类代码时 vo返回类或者excel导入导出实体类, 很多时候都是直接复制dto/do类进行修改,而dto/do类基本都通过别的工具生成的 已经带好了文档注释 ,通过插件可以一键生成注解 注解value即为文档注释内容
效果示例:
实体类中 属性已有了文档注释,安装插件后 我们可以按alt+ins 选择生成swagger注解(或easy excel注解)
选择Swagger Annotation之后,就会自动生成swagger的注解,注解的内容就是我们文档注释的内容,所以只要我们文档注释规范,基本是不需要手动额外写其它内容的,可以节省开发时间。
(如果选择EasyExcel Annotation 则生成easy excel相关的注解)
下载安装方式:
idea-plugins-marketplace 点击下载安装 重启idea
当然,授人以鱼不如授人以渔 有需要的同学 可以在github搜索博主的项目 自行拓展其它注解(例如xmlelment等), 按照已有代码规范继承拓展 难度不大
核心代码其实就是按照下列这部分改写(以easy excel为例):
/**
* 生成属性注解
*
* @param psiField 类属性元素
*/
@Override
public void generateFieldAnnotation(PsiField psiField, AnnotationEnum generateType) {
PsiComment classComment = null;
for (PsiElement tmpEle : psiField.getChildren()) {
if (tmpEle instanceof PsiComment) {
classComment = (PsiComment) tmpEle;
// 注释的内容
String tmpText = classComment.getText();
String commentDesc = CommentUtils.getCommentDesc(tmpText);
String apiModelPropertyText = "";
apiModelPropertyText = String.format("@ExcelProperty(value=\"%s\")", commentDesc);
this.doWrite("ExcelProperty", "com.alibaba.excel.annotation.ExcelProperty", apiModelPropertyText, psiField);
this.doWrite("ColumnWidth", "com.alibaba.excel.annotation.write.style.ColumnWidth", "@ColumnWidth(20)", psiField);
}
}
// 如果没有文档注释
if (Objects.isNull(classComment)) {
this.doWrite("ExcelProperty", "com.alibaba.excel.annotation.ExcelProperty", "@ExcelProperty(\"\")", psiField);
this.doWrite("ColumnWidth", "com.alibaba.excel.annotation.write.style.ColumnWidth", "@ColumnWidth(20)", psiField);
}
}