diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/GlobalConfig.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/GlobalConfig.java index 64a6f988..107d1315 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/GlobalConfig.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/GlobalConfig.java @@ -29,6 +29,7 @@ public class GlobalConfig { // === 必须配置 === + private final JavadocConfig javadocConfig; private final PackageConfig packageConfig; private final StrategyConfig strategyConfig; @@ -55,10 +56,15 @@ public class GlobalConfig { private boolean tableDefGenerateEnable; public GlobalConfig() { + this.javadocConfig = new JavadocConfig(); this.packageConfig = new PackageConfig(); this.strategyConfig = new StrategyConfig(); } + public JavadocConfig getJavadocConfig() { + return javadocConfig; + } + public PackageConfig getPackageConfig() { return packageConfig; } diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/JavadocConfig.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/JavadocConfig.java new file mode 100644 index 00000000..5c25940a --- /dev/null +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/JavadocConfig.java @@ -0,0 +1,68 @@ +package com.mybatisflex.codegen.config; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * 注释配置类。 + * + * @author 王帅 + * @since 2023-05-17 + */ +@SuppressWarnings("unused") +public class JavadocConfig { + + /** + * 作者。 + */ + private String author = System.getProperty("user.name"); + + /** + * 自。 + */ + private Supplier since = () -> DateTimeFormatter.ofPattern("yyyy-MM-dd").format(LocalDate.now()); + + /** + * 表名格式化。 + */ + private Function tableRemarkFormat = Function.identity(); + + public String getAuthor() { + return author; + } + + public JavadocConfig setAuthor(String author) { + this.author = author; + return this; + } + + public String getSince() { + return since.get(); + } + + public JavadocConfig setSince(String since) { + this.since = () -> since; + return this; + } + + public JavadocConfig setSince(Supplier since) { + this.since = since; + return this; + } + + public String formatTableComment(String comment) { + return tableRemarkFormat.apply(comment); + } + + public Function getTableRemarkFormat() { + return tableRemarkFormat; + } + + public JavadocConfig setTableRemarkFormat(Function tableRemarkFormat) { + this.tableRemarkFormat = tableRemarkFormat; + return this; + } + +} \ No newline at end of file diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/StrategyConfig.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/StrategyConfig.java index 2879fbf6..0b1c53ed 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/StrategyConfig.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/StrategyConfig.java @@ -21,38 +21,47 @@ public class StrategyConfig { * 使用哪个模板引擎来生成代码。 */ protected ITemplate templateEngine; + /** * 数据库表前缀,多个前缀用英文逗号(,) 隔开。 */ private String tablePrefix; + /** * 逻辑删除的默认字段名称。 */ private String logicDeleteColumn; + /** * 乐观锁的字段名称。 */ private String versionColumn; + /** * 是否生成视图映射。 */ private boolean generateForView; + /** * 是否覆盖之前生成的文件。 */ private boolean overwriteEnable; + /** * 单独为某张表添加独立的配置。 */ private Map tableConfigMap; + /** * 设置某个列的全局配置。 */ private Map columnConfigMap; + /** * 生成那些表,白名单。 */ private Set generateTables; + /** * 不生成那些表,黑名单。 */ diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/entity/Table.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/entity/Table.java index c82272bc..263f3cc5 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/entity/Table.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/entity/Table.java @@ -41,7 +41,7 @@ public class Table { } public String getRemarks() { - return remarks; + return globalConfig.getJavadocConfig().formatTableComment(remarks); } public void setRemarks(String remarks) { @@ -156,17 +156,6 @@ public class Table { return imports.stream().sorted(Comparator.naturalOrder()).collect(Collectors.toList()); } - public String buildRemarks(){ - if (StringUtil.isBlank(remarks)){ - return ""; - }else { - StringBuilder sb = new StringBuilder("/**\n") - .append(" * ").append(remarks).append("\n") - .append(" */"); - return sb.toString(); - } - } - public String getEntityJavaFileName() { String entityJavaFileName = name; String tablePrefix = globalConfig.getStrategyConfig().getTablePrefix(); diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/ControllerGenerator.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/ControllerGenerator.java index 3fb95821..cc03dc06 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/ControllerGenerator.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/ControllerGenerator.java @@ -64,9 +64,10 @@ public class ControllerGenerator implements IGenerator { } - Map params = new HashMap<>(3); + Map params = new HashMap<>(4); params.put("table", table); params.put("packageConfig", packageConfig); + params.put("javadocConfig", globalConfig.getJavadocConfig()); params.put("controllerConfig", globalConfig.getControllerConfig()); strategyConfig.getTemplateEngine().generate(params, templatePath, controllerJavaFile); diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/EntityGenerator.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/EntityGenerator.java index d43e3390..5e0c56a6 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/EntityGenerator.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/EntityGenerator.java @@ -64,10 +64,11 @@ public class EntityGenerator implements IGenerator { } - Map params = new HashMap<>(3); + Map params = new HashMap<>(4); params.put("table", table); params.put("packageConfig", packageConfig); params.put("entityConfig", globalConfig.getEntityConfig()); + params.put("javadocConfig", globalConfig.getJavadocConfig()); strategyConfig.getTemplateEngine().generate(params, templatePath, entityJavaFile); } diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/MapperGenerator.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/MapperGenerator.java index f6b2b3f6..2511e3bc 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/MapperGenerator.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/MapperGenerator.java @@ -64,10 +64,11 @@ public class MapperGenerator implements IGenerator { } - Map params = new HashMap<>(3); + Map params = new HashMap<>(4); params.put("table", table); params.put("packageConfig", packageConfig); params.put("mapperConfig", globalConfig.getMapperConfig()); + params.put("javadocConfig", globalConfig.getJavadocConfig()); strategyConfig.getTemplateEngine().generate(params, templatePath, mapperJavaFile); } diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/ServiceGenerator.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/ServiceGenerator.java index 9f829e06..1a479112 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/ServiceGenerator.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/ServiceGenerator.java @@ -64,10 +64,11 @@ public class ServiceGenerator implements IGenerator { } - Map params = new HashMap<>(3); + Map params = new HashMap<>(4); params.put("table", table); params.put("packageConfig", packageConfig); params.put("serviceConfig", globalConfig.getServiceConfig()); + params.put("javadocConfig", globalConfig.getJavadocConfig()); strategyConfig.getTemplateEngine().generate(params, templatePath, serviceJavaFile); } diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/ServiceImplGenerator.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/ServiceImplGenerator.java index 8bd6a7f0..13f921b4 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/ServiceImplGenerator.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/ServiceImplGenerator.java @@ -64,9 +64,10 @@ public class ServiceImplGenerator implements IGenerator { } - Map params = new HashMap<>(3); + Map params = new HashMap<>(4); params.put("table", table); params.put("packageConfig", packageConfig); + params.put("javadocConfig", globalConfig.getJavadocConfig()); params.put("serviceImplConfig", globalConfig.getServiceImplConfig()); strategyConfig.getTemplateEngine().generate(params, templatePath, serviceImplJavaFile); diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/TableDefGenerator.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/TableDefGenerator.java index 404f304a..ebb8dc70 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/TableDefGenerator.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/TableDefGenerator.java @@ -64,9 +64,10 @@ public class TableDefGenerator implements IGenerator { } - Map params = new HashMap<>(3); + Map params = new HashMap<>(4); params.put("table", table); params.put("packageConfig", packageConfig); + params.put("javadocConfig", globalConfig.getJavadocConfig()); params.put("tableDefConfig", globalConfig.getTableDefConfig()); strategyConfig.getTemplateEngine().generate(params, templatePath, tableDefJavaFile); diff --git a/mybatis-flex-codegen/src/main/resources/templates/enjoy/controller.tpl b/mybatis-flex-codegen/src/main/resources/templates/enjoy/controller.tpl index 6c730159..15f49655 100644 --- a/mybatis-flex-codegen/src/main/resources/templates/enjoy/controller.tpl +++ b/mybatis-flex-codegen/src/main/resources/templates/enjoy/controller.tpl @@ -10,6 +10,12 @@ import org.springframework.stereotype.Controller; import #(controllerConfig.buildSuperClassImport()) #end +/** + * #(table.getRemarks()) 控制层。 + * + * @author #(javadocConfig.getAuthor()) + * @since #(javadocConfig.getSince()) + */ #if(controllerConfig.restStyle) @RestController #else diff --git a/mybatis-flex-codegen/src/main/resources/templates/enjoy/entity.tpl b/mybatis-flex-codegen/src/main/resources/templates/enjoy/entity.tpl index a5e3a035..74621465 100644 --- a/mybatis-flex-codegen/src/main/resources/templates/enjoy/entity.tpl +++ b/mybatis-flex-codegen/src/main/resources/templates/enjoy/entity.tpl @@ -4,7 +4,12 @@ package #(packageConfig.entityPackage); import #(importClass); #end -#(table.buildRemarks()) +/** + * #(table.getRemarks()) 实体类。 + * + * @author #(javadocConfig.getAuthor()) + * @since #(javadocConfig.getSince()) + */ #(table.buildTableAnnotation()) public class #(table.buildEntityClassName())#(table.buildExtends())#(table.buildImplements()) { #for(column: table.columns) diff --git a/mybatis-flex-codegen/src/main/resources/templates/enjoy/mapper.tpl b/mybatis-flex-codegen/src/main/resources/templates/enjoy/mapper.tpl index 227a59d6..724c81bc 100644 --- a/mybatis-flex-codegen/src/main/resources/templates/enjoy/mapper.tpl +++ b/mybatis-flex-codegen/src/main/resources/templates/enjoy/mapper.tpl @@ -3,6 +3,12 @@ package #(packageConfig.mapperPackage); import #(mapperConfig.buildSuperClassImport()); import #(packageConfig.entityPackage).#(table.buildEntityClassName()); +/** + * #(table.getRemarks()) 映射层。 + * + * @author #(javadocConfig.getAuthor()) + * @since #(javadocConfig.getSince()) + */ public interface #(table.buildMapperClassName()) extends #(mapperConfig.buildSuperClassName())<#(table.buildEntityClassName())> { } diff --git a/mybatis-flex-codegen/src/main/resources/templates/enjoy/service.tpl b/mybatis-flex-codegen/src/main/resources/templates/enjoy/service.tpl index 7b08c377..678cf3a5 100644 --- a/mybatis-flex-codegen/src/main/resources/templates/enjoy/service.tpl +++ b/mybatis-flex-codegen/src/main/resources/templates/enjoy/service.tpl @@ -3,6 +3,12 @@ package #(packageConfig.servicePackage); import #(serviceConfig.buildSuperClassImport()); import #(packageConfig.entityPackage).#(table.buildEntityClassName()); +/** + * #(table.getRemarks()) 服务层。 + * + * @author #(javadocConfig.getAuthor()) + * @since #(javadocConfig.getSince()) + */ public interface #(table.buildServiceClassName()) extends #(serviceConfig.buildSuperClassName())<#(table.buildEntityClassName())> { } \ No newline at end of file diff --git a/mybatis-flex-codegen/src/main/resources/templates/enjoy/serviceImpl.tpl b/mybatis-flex-codegen/src/main/resources/templates/enjoy/serviceImpl.tpl index 7de44a69..a2dcdf11 100644 --- a/mybatis-flex-codegen/src/main/resources/templates/enjoy/serviceImpl.tpl +++ b/mybatis-flex-codegen/src/main/resources/templates/enjoy/serviceImpl.tpl @@ -6,6 +6,12 @@ import #(packageConfig.mapperPackage).#(table.buildMapperClassName()); import #(packageConfig.servicePackage).#(table.buildServiceClassName()); import org.springframework.stereotype.Service; +/** + * #(table.getRemarks()) 服务层实现。 + * + * @author #(javadocConfig.getAuthor()) + * @since #(javadocConfig.getSince()) + */ @Service public class #(table.buildServiceImplClassName()) extends #(serviceImplConfig.buildSuperClassName())<#(table.buildMapperClassName()), #(table.buildEntityClassName())> implements #(table.buildServiceClassName()) { diff --git a/mybatis-flex-codegen/src/main/resources/templates/enjoy/tableDef.tpl b/mybatis-flex-codegen/src/main/resources/templates/enjoy/tableDef.tpl index 8c40f9cf..23b5f031 100644 --- a/mybatis-flex-codegen/src/main/resources/templates/enjoy/tableDef.tpl +++ b/mybatis-flex-codegen/src/main/resources/templates/enjoy/tableDef.tpl @@ -3,7 +3,12 @@ package #(packageConfig.tableDefPackage); import com.mybatisflex.core.query.QueryColumn; import com.mybatisflex.core.table.TableDef; - +/** + * #(table.getRemarks()) 表定义层。 + * + * @author #(javadocConfig.getAuthor()) + * @since #(javadocConfig.getSince()) + */ public class #(table.buildTableDefClassName()) extends TableDef { public static final #(table.buildTableDefClassName()) #(table.name) = new #(table.buildTableDefClassName())("#(table.name)"); diff --git a/mybatis-flex-codegen/src/test/java/com/mybatisflex/codegen/test/GeneratorTest.java b/mybatis-flex-codegen/src/test/java/com/mybatisflex/codegen/test/GeneratorTest.java index 856d9247..5b0475f3 100644 --- a/mybatis-flex-codegen/src/test/java/com/mybatisflex/codegen/test/GeneratorTest.java +++ b/mybatis-flex-codegen/src/test/java/com/mybatisflex/codegen/test/GeneratorTest.java @@ -22,6 +22,8 @@ import com.mybatisflex.codegen.config.TableConfig; import com.zaxxer.hikari.HikariDataSource; import org.junit.Test; +import java.util.function.Function; + public class GeneratorTest { @@ -95,6 +97,14 @@ public class GeneratorTest { GlobalConfig globalConfig = new GlobalConfig(); + //用户信息表,用于存放用户信息。 -> 用户信息 + Function format = (e) -> e.split(",")[0].replace("表", ""); + + //设置注解生成配置 + globalConfig.getJavadocConfig() + .setAuthor("王帅") + .setTableRemarkFormat(format); + //设置生成文件目录和根包 globalConfig.getPackageConfig() .setSourceDir(System.getProperty("user.dir") + "/src/test/java")