From 642941c00eba3829b04cb3056b92279e57926afa Mon Sep 17 00:00:00 2001 From: nieqiurong Date: Tue, 26 Mar 2024 13:07:25 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E7=94=9F=E6=88=90=E5=99=A8?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E9=85=8D=E7=BD=AE.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/baomidou/mybatis-plus/issues/6015 --- .../mybatisplus/generator/AutoGenerator.java | 2 + .../generator/config/GlobalConfig.java | 3 + .../generator/config/TemplateConfig.java | 22 +++++- .../config/builder/ConfigBuilder.java | 2 + .../generator/config/builder/Controller.java | 38 ++++++++++ .../generator/config/builder/CustomFile.java | 6 ++ .../generator/config/builder/Entity.java | 49 ++++++++++++ .../generator/config/builder/Mapper.java | 56 ++++++++++++++ .../generator/config/builder/Service.java | 75 +++++++++++++++++++ .../generator/config/po/TableInfo.java | 3 + .../engine/AbstractTemplateEngine.java | 60 +++++++-------- .../resources/templates/serviceImpl.java.btl | 6 +- .../resources/templates/serviceImpl.java.ej | 6 +- .../resources/templates/serviceImpl.java.ftl | 6 +- .../resources/templates/serviceImpl.java.vm | 6 +- 15 files changed, 296 insertions(+), 44 deletions(-) diff --git a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/AutoGenerator.java b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/AutoGenerator.java index ba949956a1..cbf96ca2e8 100644 --- a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/AutoGenerator.java +++ b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/AutoGenerator.java @@ -123,8 +123,10 @@ public AutoGenerator packageInfo(@NotNull PackageConfig packageConfig) { * * @param templateConfig 模板配置 * @return this + * @see #strategy * @since 3.5.0 */ + @Deprecated public AutoGenerator template(@NotNull TemplateConfig templateConfig) { this.template = templateConfig; return this; diff --git a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/GlobalConfig.java b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/GlobalConfig.java index a174a8c022..5204935ed0 100644 --- a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/GlobalConfig.java +++ b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/GlobalConfig.java @@ -15,6 +15,7 @@ */ package com.baomidou.mybatisplus.generator.config; +import com.baomidou.mybatisplus.generator.config.builder.Service; import com.baomidou.mybatisplus.generator.config.rules.DateType; import lombok.Getter; import lombok.Setter; @@ -90,9 +91,11 @@ private GlobalConfig() { * 是否生成service 接口(默认 true) * 增加此开关的原因:在某些项目实践中,只需要生成service实现类,不需要抽象sevice接口 * 针对某些项目,生成service接口,开发时反而麻烦,这种情况,可以将该属性设置为false + * @deprecated 3.5.6 {@link Service.Builder#disableService()} */ @Getter @Setter + @Deprecated private boolean serviceInterface = true; public boolean isSwagger() { diff --git a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/TemplateConfig.java b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/TemplateConfig.java index fcebc2f42a..9f56d9536b 100644 --- a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/TemplateConfig.java +++ b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/TemplateConfig.java @@ -16,6 +16,10 @@ package com.baomidou.mybatisplus.generator.config; import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.generator.config.builder.Controller; +import com.baomidou.mybatisplus.generator.config.builder.Entity; +import com.baomidou.mybatisplus.generator.config.builder.Service; +import com.baomidou.mybatisplus.generator.config.builder.Mapper; import lombok.Getter; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; @@ -27,6 +31,7 @@ * @author tzg hubin * @since 2017-06-17 */ +@Deprecated public class TemplateConfig { private static final Logger LOGGER = LoggerFactory.getLogger(TemplateConfig.class); @@ -171,6 +176,7 @@ public TemplateConfig disable() { * * @author nieqiurong 3.5.0 */ + @Deprecated public static class Builder implements IConfigBuilder { private final TemplateConfig templateConfig; @@ -207,7 +213,9 @@ public Builder disable(@NotNull TemplateType... templateTypes) { * * @param entityTemplate 实体模板 * @return this + * @deprecated {@link Entity.Builder#javaTemplate} */ + @Deprecated public Builder entity(@NotNull String entityTemplate) { this.templateConfig.disableEntity = false; this.templateConfig.entity = entityTemplate; @@ -219,7 +227,9 @@ public Builder entity(@NotNull String entityTemplate) { * * @param entityKtTemplate 实体模板 * @return this + * @deprecated {@link Entity.Builder#javaTemplate} */ + @Deprecated public Builder entityKt(@NotNull String entityKtTemplate) { this.templateConfig.disableEntity = false; this.templateConfig.entityKt = entityKtTemplate; @@ -229,9 +239,11 @@ public Builder entityKt(@NotNull String entityKtTemplate) { /** * 设置service模板路径 * - * @param serviceTemplate service接口模板路径 + * @param serviceTemplate service接口模板路径 * @return this + * @deprecated {@link Service.Builder#serviceTemplate(String)} */ + @Deprecated public Builder service(@NotNull String serviceTemplate) { this.templateConfig.service = serviceTemplate; return this; @@ -242,7 +254,9 @@ public Builder service(@NotNull String serviceTemplate) { * * @param serviceImplTemplate service实现类模板路径 * @return this + * @deprecated {@link Service.Builder#serviceImplTemplate(String)} */ + @Deprecated public Builder serviceImpl(@NotNull String serviceImplTemplate) { this.templateConfig.serviceImpl = serviceImplTemplate; return this; @@ -253,7 +267,9 @@ public Builder serviceImpl(@NotNull String serviceImplTemplate) { * * @param mapperTemplate mapper模板路径 * @return this + * @deprecated {@link Mapper.Builder#mapperTemplate(String)} */ + @Deprecated public Builder mapper(@NotNull String mapperTemplate) { this.templateConfig.mapper = mapperTemplate; return this; @@ -264,7 +280,9 @@ public Builder mapper(@NotNull String mapperTemplate) { * * @param xmlTemplate xml模板路径 * @return this + * @deprecated {@link Mapper.Builder#mapperXmlTemplate(String)} */ + @Deprecated public Builder xml(@NotNull String xmlTemplate) { this.templateConfig.xml = xmlTemplate; return this; @@ -275,7 +293,9 @@ public Builder xml(@NotNull String xmlTemplate) { * * @param controllerTemplate 控制器模板路径 * @return this + * @deprecated {@link Controller.Builder#template(String)} */ + @Deprecated public Builder controller(@NotNull String controllerTemplate) { this.templateConfig.controller = controllerTemplate; return this; diff --git a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/ConfigBuilder.java b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/ConfigBuilder.java index 6a98038e31..35467b322e 100644 --- a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/ConfigBuilder.java +++ b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/ConfigBuilder.java @@ -36,6 +36,7 @@ public class ConfigBuilder { /** * 模板路径配置信息 */ + @Deprecated private final TemplateConfig templateConfig; /** @@ -142,6 +143,7 @@ public ConfigBuilder setInjectionConfig(@NotNull InjectionConfig injectionConfig } @NotNull + @Deprecated public TemplateConfig getTemplateConfig() { return templateConfig; } diff --git a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/Controller.java b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/Controller.java index 38bcb9ed0d..263d404e2d 100644 --- a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/Controller.java +++ b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/Controller.java @@ -82,6 +82,21 @@ private Controller() { @Getter private boolean fileOverride; + /** + * 是否生成 + * + * @since 3.5.6 + */ + @Getter + private boolean generate = true; + + /** + * 模板路径 + * @since 3.5.6 + */ + @Getter + private String templatePath = ConstVal.TEMPLATE_CONTROLLER; + @Nullable public String getSuperClass() { return superClass; @@ -200,6 +215,29 @@ public Builder enableFileOverride() { return this; } + /** + * 禁用生成 + * + * @return this + * @since 3.5.6 + */ + public Builder disable() { + this.controller.generate = false; + return this; + } + + /** + * 指定模板路径 + * + * @param template 模板路径 + * @return this + * @since 3.5.6 + */ + public Builder template(String template) { + this.controller.templatePath = template; + return this; + } + @NotNull public Controller get() { return this.controller; diff --git a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/CustomFile.java b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/CustomFile.java index 0e3f7293ad..f5d3361e24 100644 --- a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/CustomFile.java +++ b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/CustomFile.java @@ -60,6 +60,12 @@ public class CustomFile { */ private boolean fileOverride; + /** + * 是否生成 + */ + @Getter + private boolean generate; + /** * 构建者 */ diff --git a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/Entity.java b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/Entity.java index 1064c1afc0..d6435a8b81 100644 --- a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/Entity.java +++ b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/Entity.java @@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.generator.IFill; import com.baomidou.mybatisplus.generator.ITemplate; +import com.baomidou.mybatisplus.generator.config.ConstVal; import com.baomidou.mybatisplus.generator.config.INameConvert; import com.baomidou.mybatisplus.generator.config.StrategyConfig; import com.baomidou.mybatisplus.generator.config.po.TableInfo; @@ -58,6 +59,20 @@ public class Entity implements ITemplate { private static final Logger LOGGER = LoggerFactory.getLogger(Entity.class); + /** + * Java模板默认路径 + * + * @since 3.5.6 + */ + @Getter + private String javaTemplate = ConstVal.TEMPLATE_ENTITY_JAVA; + + /** + * Kotlin模板默认撸 + */ + @Getter + private String kotlinTemplate = ConstVal.TEMPLATE_ENTITY_KT; + private Entity() { } @@ -199,6 +214,15 @@ private Entity() { @Getter private boolean fileOverride; + + /** + * 是否生成 + * + * @since 3.5.6 + */ + @Getter + private boolean generate; + /** *

* 父类 Class 反射属性转换为公共字段 @@ -617,6 +641,31 @@ public Builder enableFileOverride() { return this; } + /** + * 指定模板路径 + * + * @param template 模板路径 + * @return this + * @since 3.5.6 + */ + public Builder javaTemplate(String template) { + this.entity.javaTemplate = template; + return this; + } + + /** + * 指定模板路径 + * + * @param template 模板路径 + * @return this + * @since 3.5.6 + */ + public Builder kotlinTemplatePath(String template) { + this.entity.kotlinTemplate = template; + return this; + } + + public Entity get() { String superClass = this.entity.superClass; if (StringUtils.isNotBlank(superClass)) { diff --git a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/Mapper.java b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/Mapper.java index 0a695adee0..601cdc6deb 100644 --- a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/Mapper.java +++ b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/Mapper.java @@ -114,6 +114,38 @@ private Mapper() { */ private Class cache; + /** + * 是否生成XML + * + * @since 3.5.6 + */ + @Getter + private boolean generateMapperXml = true; + + /** + * 是否生成Mapper + * + * @since 3.5.6 + */ + @Getter + private boolean generateMapper = true; + + /** + * Mapper模板路径 + * + * @since 3.5.6 + */ + @Getter + private String mapperTemplatePath = ConstVal.TEMPLATE_MAPPER; + + /** + * MapperXml模板路径 + * + * @since 3.5.6 + */ + @Getter + private String mapperXmlTemplatePath = ConstVal.TEMPLATE_XML; + @NotNull public String getSuperClass() { return superClass; @@ -145,6 +177,8 @@ public Map renderData(@NotNull TableInfo tableInfo) { data.put("cacheClassName", cacheClass.getName()); } data.put("superMapperClass", ClassUtils.getSimpleName(this.superClass)); + data.put("generateMapperXml", this.generateMapperXml); + data.put("generateMapper", this.generateMapper); return data; } @@ -306,6 +340,28 @@ public Builder enableFileOverride() { return this; } + /** + * Service模板路径 + * + * @return this + * @since 3.5.6 + */ + public Builder mapperTemplate(String template) { + this.mapper.mapperTemplatePath = template; + return this; + } + + /** + * ServiceImpl模板路径 + * + * @return this + * @since 3.5.6 + */ + public Builder mapperXmlTemplate(String template) { + this.mapper.mapperXmlTemplatePath = template; + return this; + } + @NotNull public Mapper get() { return this.mapper; diff --git a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/Service.java b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/Service.java index 8141ee0629..44464a2599 100644 --- a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/Service.java +++ b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/Service.java @@ -42,6 +42,35 @@ public class Service implements ITemplate { private Service() { } + /** + * 是否生成serviceImpl + * + * @since 3.5.6 + */ + @Getter + private boolean generateServiceImpl = false; + + + /** + * 是否生成service + * + * @since 3.5.6 + */ + @Getter + private boolean generateService = false; + + /** + * @since 3.5.6 + */ + @Getter + private String serviceTemplate = ConstVal.TEMPLATE_SERVICE; + + /** + * @since 3.5.6 + */ + @Getter + private String serviceImplTemplate = ConstVal.TEMPLATE_SERVICE_IMPL; + /** * 自定义继承的Service类全称,带包名 */ @@ -102,6 +131,8 @@ public Map renderData(@NotNull TableInfo tableInfo) { data.put("superServiceClass", ClassUtils.getSimpleName(this.superServiceClass)); data.put("superServiceImplClassPackage", this.superServiceImplClass); data.put("superServiceImplClass", ClassUtils.getSimpleName(this.superServiceImplClass)); + data.put("generateServiceImpl", this.generateServiceImpl); + data.put("generateService", this.generateService); return data; } @@ -221,6 +252,50 @@ public Builder enableFileOverride() { return this; } + /** + * 禁用生成 + * + * @return this + * @since 3.5.6 + */ + public Builder disableService() { + this.service.generateService = false; + return this; + } + + /** + * 禁用生成ServiceImpl + * + * @return this + * @since 3.5.6 + */ + public Builder disableServiceImpl() { + this.service.generateServiceImpl = false; + return this; + } + + /** + * Service模板路径 + * + * @return this + * @since 3.5.6 + */ + public Builder serviceTemplate(String template) { + this.service.serviceTemplate = template; + return this; + } + + /** + * ServiceImpl模板路径 + * + * @return this + * @since 3.5.6 + */ + public Builder serviceImplTemplate(String template) { + this.service.serviceImplTemplate = template; + return this; + } + @NotNull public Service get() { return this.service; diff --git a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/po/TableInfo.java b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/po/TableInfo.java index 2f6e76dedc..a5ecc2f62a 100644 --- a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/po/TableInfo.java +++ b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/po/TableInfo.java @@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.generator.config.StrategyConfig; import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder; import com.baomidou.mybatisplus.generator.config.builder.Entity; +import com.baomidou.mybatisplus.generator.config.builder.Service; import com.baomidou.mybatisplus.generator.config.rules.IColumnType; import lombok.Getter; import org.jetbrains.annotations.NotNull; @@ -328,7 +329,9 @@ public List getCommonFields() { /** * 获取是否生成service接口 + * @deprecated {@link Service.Builder#disableService()} */ + @Deprecated public boolean isServiceInterface() { return globalConfig.isServiceInterface(); } diff --git a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/engine/AbstractTemplateEngine.java b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/engine/AbstractTemplateEngine.java index e240a97f8b..c6df774a5d 100644 --- a/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/engine/AbstractTemplateEngine.java +++ b/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/engine/AbstractTemplateEngine.java @@ -19,7 +19,11 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder; +import com.baomidou.mybatisplus.generator.config.builder.Controller; import com.baomidou.mybatisplus.generator.config.builder.CustomFile; +import com.baomidou.mybatisplus.generator.config.builder.Entity; +import com.baomidou.mybatisplus.generator.config.builder.Mapper; +import com.baomidou.mybatisplus.generator.config.builder.Service; import com.baomidou.mybatisplus.generator.config.po.TableInfo; import com.baomidou.mybatisplus.generator.util.FileUtils; import com.baomidou.mybatisplus.generator.util.RuntimeUtils; @@ -90,11 +94,11 @@ protected void outputCustomFile(@NotNull List customFiles, @NotNull protected void outputEntity(@NotNull TableInfo tableInfo, @NotNull Map objectMap) { String entityName = tableInfo.getEntityName(); String entityPath = getPathInfo(OutputFile.entity); - if (StringUtils.isNotBlank(entityName) && StringUtils.isNotBlank(entityPath)) { - getTemplateFilePath(template -> template.getEntity(getConfigBuilder().getGlobalConfig().isKotlin())).ifPresent((entity) -> { - String entityFile = String.format((entityPath + File.separator + "%s" + suffixJavaOrKt()), entityName); - outputFile(getOutputFile(entityFile, OutputFile.entity), objectMap, entity, getConfigBuilder().getStrategyConfig().entity().isFileOverride()); - }); + Entity entity = this.getConfigBuilder().getStrategyConfig().entity(); + GlobalConfig globalConfig = configBuilder.getGlobalConfig(); + if (entity.isGenerate()) { + String entityFile = String.format((entityPath + File.separator + "%s" + suffixJavaOrKt()), entityName); + outputFile(getOutputFile(entityFile, OutputFile.entity), objectMap, templateFilePath(globalConfig.isKotlin() ? entity.getKotlinTemplate() : entity.getJavaTemplate()), getConfigBuilder().getStrategyConfig().entity().isFileOverride()); } } @@ -113,19 +117,16 @@ protected void outputMapper(@NotNull TableInfo tableInfo, @NotNull Map { - String mapperFile = String.format((mapperPath + File.separator + tableInfo.getMapperName() + suffixJavaOrKt()), entityName); - outputFile(getOutputFile(mapperFile, OutputFile.mapper), objectMap, mapper, getConfigBuilder().getStrategyConfig().mapper().isFileOverride()); - }); + Mapper mapper = this.getConfigBuilder().getStrategyConfig().mapper(); + if (mapper.isGenerateMapper() || (StringUtils.isNotBlank(tableInfo.getMapperName()) && StringUtils.isNotBlank(mapperPath))) { + String mapperFile = String.format((mapperPath + File.separator + tableInfo.getMapperName() + suffixJavaOrKt()), entityName); + outputFile(getOutputFile(mapperFile, OutputFile.mapper), objectMap, templateFilePath(mapper.getMapperTemplatePath()), getConfigBuilder().getStrategyConfig().mapper().isFileOverride()); } // MpMapper.xml String xmlPath = getPathInfo(OutputFile.xml); - if (StringUtils.isNotBlank(tableInfo.getXmlName()) && StringUtils.isNotBlank(xmlPath)) { - getTemplateFilePath(TemplateConfig::getXml).ifPresent(xml -> { - String xmlFile = String.format((xmlPath + File.separator + tableInfo.getXmlName() + ConstVal.XML_SUFFIX), entityName); - outputFile(getOutputFile(xmlFile, OutputFile.xml), objectMap, xml, getConfigBuilder().getStrategyConfig().mapper().isFileOverride()); - }); + if (mapper.isGenerateMapperXml() || (StringUtils.isNotBlank(tableInfo.getXmlName()) && StringUtils.isNotBlank(xmlPath))) { + String xmlFile = String.format((xmlPath + File.separator + tableInfo.getXmlName() + ConstVal.XML_SUFFIX), entityName); + outputFile(getOutputFile(xmlFile, OutputFile.xml), objectMap, templateFilePath(mapper.getMapperXmlTemplatePath()), getConfigBuilder().getStrategyConfig().mapper().isFileOverride()); } } @@ -140,22 +141,19 @@ protected void outputService(@NotNull TableInfo tableInfo, @NotNull Map { - String serviceFile = String.format((servicePath + File.separator + tableInfo.getServiceName() + suffixJavaOrKt()), entityName); - outputFile(getOutputFile(serviceFile, OutputFile.service), objectMap, service, getConfigBuilder().getStrategyConfig().service().isFileOverride()); - }); + String serviceFile = String.format((servicePath + File.separator + tableInfo.getServiceName() + suffixJavaOrKt()), entityName); + outputFile(getOutputFile(serviceFile, OutputFile.service), objectMap, templateFilePath(service.getServiceTemplate()), getConfigBuilder().getStrategyConfig().service().isFileOverride()); } } // MpServiceImpl.java String serviceImplPath = getPathInfo(OutputFile.serviceImpl); - if (StringUtils.isNotBlank(tableInfo.getServiceImplName()) && StringUtils.isNotBlank(serviceImplPath)) { - getTemplateFilePath(TemplateConfig::getServiceImpl).ifPresent(serviceImpl -> { - String implFile = String.format((serviceImplPath + File.separator + tableInfo.getServiceImplName() + suffixJavaOrKt()), entityName); - outputFile(getOutputFile(implFile, OutputFile.serviceImpl), objectMap, serviceImpl, getConfigBuilder().getStrategyConfig().service().isFileOverride()); - }); + if (service.isGenerateServiceImpl() || (StringUtils.isNotBlank(tableInfo.getServiceImplName()) && StringUtils.isNotBlank(serviceImplPath))) { + String implFile = String.format((serviceImplPath + File.separator + tableInfo.getServiceImplName() + suffixJavaOrKt()), entityName); + outputFile(getOutputFile(implFile, OutputFile.serviceImpl), objectMap, templateFilePath(service.getServiceImplTemplate()), getConfigBuilder().getStrategyConfig().service().isFileOverride()); } } @@ -168,13 +166,12 @@ protected void outputService(@NotNull TableInfo tableInfo, @NotNull Map objectMap) { // MpController.java + Controller controller = this.getConfigBuilder().getStrategyConfig().controller(); String controllerPath = getPathInfo(OutputFile.controller); - if (StringUtils.isNotBlank(tableInfo.getControllerName()) && StringUtils.isNotBlank(controllerPath)) { - getTemplateFilePath(TemplateConfig::getController).ifPresent(controller -> { - String entityName = tableInfo.getEntityName(); - String controllerFile = String.format((controllerPath + File.separator + tableInfo.getControllerName() + suffixJavaOrKt()), entityName); - outputFile(getOutputFile(controllerFile, OutputFile.controller), objectMap, controller, getConfigBuilder().getStrategyConfig().controller().isFileOverride()); - }); + if (controller.isGenerate() || (StringUtils.isNotBlank(tableInfo.getControllerName()) && StringUtils.isNotBlank(controllerPath))) { + String entityName = tableInfo.getEntityName(); + String controllerFile = String.format((controllerPath + File.separator + tableInfo.getControllerName() + suffixJavaOrKt()), entityName); + outputFile(getOutputFile(controllerFile, OutputFile.controller), objectMap, templateFilePath(controller.getTemplatePath()), getConfigBuilder().getStrategyConfig().controller().isFileOverride()); } } @@ -211,6 +208,7 @@ protected void outputFile(@NotNull File file, @NotNull Map objec * @since 3.5.0 */ @NotNull + @Deprecated protected Optional getTemplateFilePath(@NotNull Function function) { TemplateConfig templateConfig = getConfigBuilder().getTemplateConfig(); String filePath = function.apply(templateConfig); diff --git a/mybatis-plus-generator/src/main/resources/templates/serviceImpl.java.btl b/mybatis-plus-generator/src/main/resources/templates/serviceImpl.java.btl index ee2eb6bb4c..35fdff3a4b 100644 --- a/mybatis-plus-generator/src/main/resources/templates/serviceImpl.java.btl +++ b/mybatis-plus-generator/src/main/resources/templates/serviceImpl.java.btl @@ -2,7 +2,7 @@ package ${package.ServiceImpl}; import ${package.Entity}.${entity}; import ${package.Mapper}.${table.mapperName}; -<% if(table.serviceInterface){ %> +<% if(generateService){ %> import ${package.Service}.${table.serviceName}; <% } %> import ${superServiceImplClassPackage}; @@ -18,11 +18,11 @@ import org.springframework.stereotype.Service; */ @Service <% if(kotlin){ %> -open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperName}, ${entity}>()<% if(table.serviceInterface){ %>, ${table.serviceName}<% } %> { +open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperName}, ${entity}>()<% if(generateService){ %>, ${table.serviceName}<% } %> { } <% }else{ %> -public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}><% if(table.serviceInterface){ %> implements ${table.serviceName}<% } %> { +public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}><% if(generateService){ %> implements ${table.serviceName}<% } %> { } <% } %> diff --git a/mybatis-plus-generator/src/main/resources/templates/serviceImpl.java.ej b/mybatis-plus-generator/src/main/resources/templates/serviceImpl.java.ej index f22e43b0b8..bd8d5da34f 100644 --- a/mybatis-plus-generator/src/main/resources/templates/serviceImpl.java.ej +++ b/mybatis-plus-generator/src/main/resources/templates/serviceImpl.java.ej @@ -2,7 +2,7 @@ package #(package.ServiceImpl); import #(package.Entity).#(entity); import #(package.Mapper).#(table.mapperName); -#if(table.isServiceInterface()) +#if(generateService) import #(package.Service).#(table.serviceName); #end import #(superServiceImplClassPackage); @@ -18,11 +18,11 @@ import org.springframework.stereotype.Service; */ @Service #if(kotlin) -open class #(table.serviceImplName) : #(superServiceImplClass)<#(table.mapperName), #(entity)>()#if(table.isServiceInterface()), #(table.serviceName)#end { +open class #(table.serviceImplName) : #(superServiceImplClass)<#(table.mapperName), #(entity)>() #if(generateService), #(table.serviceName)#end { } #else -public class #(table.serviceImplName) extends #(superServiceImplClass)<#(table.mapperName), #(entity)>#if(table.isServiceInterface()) implements #(table.serviceName)#end { +public class #(table.serviceImplName) extends #(superServiceImplClass)<#(table.mapperName), #(entity)> #if(generateService) implements #(table.serviceName)#end { } #end diff --git a/mybatis-plus-generator/src/main/resources/templates/serviceImpl.java.ftl b/mybatis-plus-generator/src/main/resources/templates/serviceImpl.java.ftl index c7317df517..e24e8169a3 100644 --- a/mybatis-plus-generator/src/main/resources/templates/serviceImpl.java.ftl +++ b/mybatis-plus-generator/src/main/resources/templates/serviceImpl.java.ftl @@ -2,7 +2,7 @@ package ${package.ServiceImpl}; import ${package.Entity}.${entity}; import ${package.Mapper}.${table.mapperName}; -<#if table.serviceInterface> +<#if generateService> import ${package.Service}.${table.serviceName}; import ${superServiceImplClassPackage}; @@ -18,11 +18,11 @@ import org.springframework.stereotype.Service; */ @Service <#if kotlin> -open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperName}, ${entity}>()<#if table.serviceInterface>, ${table.serviceName} { +open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperName}, ${entity}>()<#if generateService>, ${table.serviceName} { } <#else> -public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}><#if table.serviceInterface> implements ${table.serviceName} { +public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}><#if generateService> implements ${table.serviceName} { } diff --git a/mybatis-plus-generator/src/main/resources/templates/serviceImpl.java.vm b/mybatis-plus-generator/src/main/resources/templates/serviceImpl.java.vm index ceec461e46..d9e2661c7b 100644 --- a/mybatis-plus-generator/src/main/resources/templates/serviceImpl.java.vm +++ b/mybatis-plus-generator/src/main/resources/templates/serviceImpl.java.vm @@ -2,7 +2,7 @@ package ${package.ServiceImpl}; import ${package.Entity}.${entity}; import ${package.Mapper}.${table.mapperName}; -#if(${table.serviceInterface}) +#if(${generateService}) import ${package.Service}.${table.serviceName}; #end import ${superServiceImplClassPackage}; @@ -18,11 +18,11 @@ import org.springframework.stereotype.Service; */ @Service #if(${kotlin}) -open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperName}, ${entity}>()#if(${table.serviceInterface}), ${table.serviceName}#end { +open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperName}, ${entity}>()#if(${generateService}), ${table.serviceName}#end { } #else -public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}>#if(${table.serviceInterface}) implements ${table.serviceName}#end { +public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}>#if(${generateService}) implements ${table.serviceName}#end { } #end