diff --git a/mybatis-plus-generator-ui-starter-common/pom.xml b/mybatis-plus-generator-ui-starter-common/pom.xml
new file mode 100644
index 0000000..3eefa91
--- /dev/null
+++ b/mybatis-plus-generator-ui-starter-common/pom.xml
@@ -0,0 +1,105 @@
+
+
+
+ com.github.davidfantasy
+ mybatis-plus-generator-ui
+ 2.0.5
+
+ 4.0.0
+ mybatis-plus-generator-ui-starter-common
+ mybatis-plus-generator-ui-starter-common
+ mybatis-plus-generator-ui-starter-common
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.springframework.boot
+ spring-boot-actuator-autoconfigure
+
+
+ com.google.guava
+ guava
+ 32.0.0-jre
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+ com.baomidou
+ mybatis-plus-generator
+ ${mybatis-plus.version}
+
+
+ com.baomidou
+ mybatis-plus-annotation
+ ${mybatis-plus.version}
+
+
+ com.baomidou
+ mybatis-plus-core
+ ${mybatis-plus.version}
+
+
+ com.ibeetl
+ beetl
+ 3.15.4.RELEASE
+
+
+ org.projectlombok
+ lombok
+ 1.18.34
+ provided
+
+
+ org.dom4j
+ dom4j
+ 2.1.4
+
+
+
+ com.alibaba
+ druid
+ 1.2.23
+
+
+ com.github.jsqlparser
+ jsqlparser
+ 4.9
+
+
+ com.github.javaparser
+ javaparser-symbol-solver-core
+ 3.26.1
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+ provided
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ provided
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+ provided
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ provided
+
+
+
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/MybatisPlusToolsApplication.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/MybatisPlusToolsApplication.java
similarity index 57%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/MybatisPlusToolsApplication.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/MybatisPlusToolsApplication.java
index 92046a3..d993acb 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/MybatisPlusToolsApplication.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/MybatisPlusToolsApplication.java
@@ -1,5 +1,6 @@
-package com.github.davidfantasy.mybatisplus.generatorui;
+package com.github.davidfantasy.mybatisplus.generatorui.common;
+import com.github.davidfantasy.mybatisplus.generatorui.common.core.properties.GeneratorConfig;
import com.google.common.base.Strings;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
@@ -8,9 +9,7 @@
import org.springframework.boot.autoconfigure.web.servlet.*;
import org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
-import org.springframework.context.annotation.Bean;
+import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Import;
@@ -34,37 +33,22 @@
@Slf4j
public class MybatisPlusToolsApplication {
- private static GeneratorConfig generatorConfig;
-
- public static void run(GeneratorConfig generatorConfig) {
+ public static void run(Class> clazz, String[] args, GeneratorConfig generatorConfig) {
if (Strings.isNullOrEmpty(generatorConfig.getJdbcUrl())) {
throw new IllegalArgumentException("jdbcUrl必须要设置");
}
- MybatisPlusToolsApplication.generatorConfig = generatorConfig;
+
+ //启动MyBatis
Map props = Maps.newHashMap();
- new SpringApplicationBuilder()
+ props.put("spring.datasource.url", generatorConfig.getJdbcUrl());
+ props.put("spring.datasource.driver-class-name", generatorConfig.getDriverClassName());
+ props.put("spring.datasource.username", generatorConfig.getUserName());
+ props.put("spring.datasource.password", generatorConfig.getPassword());
+ ConfigurableApplicationContext run = new SpringApplicationBuilder()
.properties(props)
- .sources(MybatisPlusToolsApplication.class)
- .run();
- }
+ .sources(clazz)
+ .run(args);
- @Bean
- public WebServerFactoryCustomizer containerConfig(GeneratorConfig config) {
- return factory -> {
- if (config.getPort() != null) {
- factory.setPort(MybatisPlusToolsApplication.generatorConfig.getPort());
- } else {
- factory.setPort(8080);
- }
- factory.setContextPath("");
- };
}
-
- @Bean
- public GeneratorConfig generatorConfig() {
- return MybatisPlusToolsApplication.generatorConfig;
- }
-
-
}
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/ProjectPathResolver.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/ProjectPathResolver.java
similarity index 89%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/ProjectPathResolver.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/ProjectPathResolver.java
index 390decd..6d0351b 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/ProjectPathResolver.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/ProjectPathResolver.java
@@ -1,8 +1,8 @@
-package com.github.davidfantasy.mybatisplus.generatorui;
+package com.github.davidfantasy.mybatisplus.generatorui.common;
-import com.github.davidfantasy.mybatisplus.generatorui.common.ServiceException;
-import com.github.davidfantasy.mybatisplus.generatorui.util.OSUtil;
-import com.github.davidfantasy.mybatisplus.generatorui.util.PathUtil;
+import com.github.davidfantasy.mybatisplus.generatorui.common.api.ServiceException;
+import com.github.davidfantasy.mybatisplus.generatorui.common.util.OSUtil;
+import com.github.davidfantasy.mybatisplus.generatorui.common.util.PathUtil;
import com.google.common.base.Strings;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
@@ -12,22 +12,23 @@
import java.net.URLDecoder;
import java.util.regex.Pattern;
-import static com.github.davidfantasy.mybatisplus.generatorui.dto.Constant.*;
+import static com.github.davidfantasy.mybatisplus.generatorui.common.dto.Constant.PACKAGE_JAVA_PREFIX;
+import static com.github.davidfantasy.mybatisplus.generatorui.common.dto.Constant.PACKAGE_RESOURCES_PREFIX;
@Getter
@Slf4j
public class ProjectPathResolver {
+ private final String basePackage;
+
+ private final Pattern packagePattern = Pattern.compile("[a-zA-Z]+[0-9a-zA-Z_]*(\\.[a-zA-Z]+[0-9a-zA-Z_]*)*");
+
private String sourcePath;
private String resourcePath;
private String baseProjectPath;
- private final String basePackage;
-
- private final Pattern packagePattern = Pattern.compile("[a-zA-Z]+[0-9a-zA-Z_]*(\\.[a-zA-Z]+[0-9a-zA-Z_]*)*");
-
public ProjectPathResolver(String basePackage) {
this.basePackage = basePackage;
ClassLoader contextLoader = Thread.currentThread().getContextClassLoader();
@@ -112,7 +113,7 @@ public String convertPathToPackage(String path) {
}
String packageStr = path.replace(File.separator, ".");
if (packageStr.startsWith(".")) {
- packageStr = packageStr.substring(1, packageStr.length());
+ packageStr = packageStr.substring(1);
}
return packageStr;
}
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/Result.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/api/Result.java
similarity index 87%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/Result.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/api/Result.java
index ae63fdd..203c704 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/Result.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/api/Result.java
@@ -1,6 +1,6 @@
-package com.github.davidfantasy.mybatisplus.generatorui.common;
+package com.github.davidfantasy.mybatisplus.generatorui.common.api;
-import com.github.davidfantasy.mybatisplus.generatorui.util.JsonUtil;
+import com.github.davidfantasy.mybatisplus.generatorui.common.util.JsonUtil;
/**
* 统一API响应结果封装
@@ -22,15 +22,15 @@ public class Result {
*/
private Object data;
+ public int getCode() {
+ return code;
+ }
+
public Result setCode(ResultCode resultCode) {
this.code = resultCode.code;
return this;
}
- public int getCode() {
- return code;
- }
-
public Result setCode(int code) {
this.code = code;
return this;
@@ -58,5 +58,5 @@ public Result setData(Object data) {
public String toString() {
return JsonUtil.obj2json(this);
}
-
+
}
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/ResultCode.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/api/ResultCode.java
similarity index 84%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/ResultCode.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/api/ResultCode.java
index 1193c40..fef9233 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/ResultCode.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/api/ResultCode.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.common;
+package com.github.davidfantasy.mybatisplus.generatorui.common.api;
/**
* 响应码枚举,参考HTTP状态码的语义
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/ResultGenerator.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/api/ResultGenerator.java
similarity index 91%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/ResultGenerator.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/api/ResultGenerator.java
index 47e9864..c6a4321 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/ResultGenerator.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/api/ResultGenerator.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.common;
+package com.github.davidfantasy.mybatisplus.generatorui.common.api;
/**
* 响应结果生成工具
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/ServiceException.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/api/ServiceException.java
similarity index 85%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/ServiceException.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/api/ServiceException.java
index c8a2f30..bdc804c 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/ServiceException.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/api/ServiceException.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.common;
+package com.github.davidfantasy.mybatisplus.generatorui.common.api;
/**
* 服务(业务)异常如“ 账号或密码错误 ”,该异常只做INFO级别的日志记录 @see WebMvcConfigurer
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/ApplicationConfigure.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/configuration/ApplicationConfigure.java
similarity index 51%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/ApplicationConfigure.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/configuration/ApplicationConfigure.java
index 549971a..d243e66 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/ApplicationConfigure.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/configuration/ApplicationConfigure.java
@@ -1,23 +1,64 @@
-package com.github.davidfantasy.mybatisplus.generatorui;
+package com.github.davidfantasy.mybatisplus.generatorui.common.core.configuration;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
-import com.github.davidfantasy.mybatisplus.generatorui.mbp.BeetlTemplateEngine;
-import com.github.davidfantasy.mybatisplus.generatorui.service.UserConfigStore;
-import com.github.davidfantasy.mybatisplus.generatorui.sqlparser.DynamicParamSqlEnhancer;
+import com.github.davidfantasy.mybatisplus.generatorui.common.core.properties.GeneratorConfig;
+import com.github.davidfantasy.mybatisplus.generatorui.common.ProjectPathResolver;
+import com.github.davidfantasy.mybatisplus.generatorui.common.mbp.BeetlTemplateEngine;
+import com.github.davidfantasy.mybatisplus.generatorui.common.service.UserConfigStore;
+import com.github.davidfantasy.mybatisplus.generatorui.common.sqlparser.DynamicParamSqlEnhancer;
import com.zaxxer.hikari.HikariDataSource;
+import org.springframework.beans.factory.ObjectProvider;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.web.server.WebServerFactoryCustomizer;
+import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
+import javax.sql.DataSource;
+
@Configuration
public class ApplicationConfigure {
+ /**
+ * 通过注入一个WebServerFactoryCustomizer来达到修改服务器端口的目的
+ *
+ * @param config
+ * @return
+ */
+ @Bean
+ public WebServerFactoryCustomizer containerConfig(GeneratorConfig config) {
+ return factory -> {
+ if (config.getPort() != null) {
+ factory.setPort(config.getPort());
+ } else {
+ factory.setPort(8080);
+ }
+ factory.setContextPath("");
+ };
+ }
@Bean
public ProjectPathResolver projectPathResolver(GeneratorConfig config) {
return new ProjectPathResolver(config.getBasePackage());
}
+ /**
+ * 如果没有,就主动注入一个
+ *
+ * @param config
+ * @return
+ */
+ @ConditionalOnMissingBean(DataSource.class)
+ @Bean
+ public DataSource dataSource(GeneratorConfig config) {
+ HikariDataSource ds = new HikariDataSource();
+ ds.setJdbcUrl(config.getJdbcUrl());
+ ds.setUsername(config.getUserName());
+ ds.setPassword(config.getPassword());
+ ds.setDriverClassName(config.getDriverClassName());
+ return ds;
+ }
/**
* 这里的DataSourceConfig仅用于获取tablesql,查询数据库元数据,和代码生成无关
@@ -35,15 +76,14 @@ public DataSourceConfig mbpDsConfig(GeneratorConfig config) {
* 用于查询数据库元数据
*/
@Bean
- public JdbcTemplate jdbcTemplate(GeneratorConfig config) {
+ public JdbcTemplate jdbcTemplate(GeneratorConfig config, ObjectProvider dataSources) {
if (StrUtil.isBlank(config.getJdbcUrl())) {
throw new IllegalArgumentException("必须指定jdbcUrl用于创建数据源");
}
- HikariDataSource ds = new HikariDataSource();
- ds.setJdbcUrl(config.getJdbcUrl());
- ds.setUsername(config.getUserName());
- ds.setPassword(config.getPassword());
- ds.setDriverClassName(config.getDriverClassName());
+ DataSource ds = dataSources.getIfAvailable();
+ if (ds == null) {
+ ds = dataSource(config);
+ }
return new JdbcTemplate(ds);
}
diff --git a/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/configuration/MybatisplusGeneratoruiAutoConfiguration.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/configuration/MybatisplusGeneratoruiAutoConfiguration.java
new file mode 100644
index 0000000..7ff6588
--- /dev/null
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/configuration/MybatisplusGeneratoruiAutoConfiguration.java
@@ -0,0 +1,70 @@
+package com.github.davidfantasy.mybatisplus.generatorui.common.core.configuration;
+
+import com.baomidou.mybatisplus.generator.config.ITypeConvert;
+import com.github.davidfantasy.mybatisplus.generatorui.common.core.properties.GeneratorConfig;
+import com.github.davidfantasy.mybatisplus.generatorui.common.core.properties.SpringDocConfigProperties;
+import com.github.davidfantasy.mybatisplus.generatorui.common.util.Constants;
+import com.github.davidfantasy.mybatisplus.generatorui.common.mbp.NameConverter;
+import com.github.davidfantasy.mybatisplus.generatorui.common.mbp.TemplateVaribleInjecter;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.ObjectProvider;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.core.LocalVariableTableParameterNameDiscoverer;
+
+@Slf4j
+@Lazy(false)
+@Configuration(proxyBeanMethods = false)
+@ConditionalOnProperty(name = Constants.MYBATISPLUS_GENETATORUI_ENABLED, matchIfMissing = true)
+@ConditionalOnWebApplication
+@Import({ApplicationConfigure.class})
+@EnableConfigurationProperties({SpringDocConfigProperties.class})
+public class MybatisplusGeneratoruiAutoConfiguration {
+ /**
+ * Local spring doc parameter name discoverer local variable table parameter name discoverer.
+ *
+ * @return the local variable table parameter name discoverer
+ */
+ @Bean
+ @Lazy(false)
+ LocalVariableTableParameterNameDiscoverer localSpringDocParameterNameDiscoverer() {
+ return new LocalVariableTableParameterNameDiscoverer();
+ }
+
+
+ /**
+ * 注入项目配置
+ *
+ * @return 项目配置的对象
+ */
+ @Bean
+ public GeneratorConfig generatorConfig(@Autowired SpringDocConfigProperties properties,
+ ObjectProvider nameConverterObjectProvider,
+ ObjectProvider typeConvertObjectProvider,
+ ObjectProvider templateVaribleInjecterObjectProvider
+
+ ) {
+ return GeneratorConfig.builder()
+ .jdbcUrl(properties.getJdbcUrl())
+ .userName(properties.getUserName())
+ .password(properties.getPassword())
+ .port(properties.getPort())
+ .driverClassName(properties.getDriverClassName())
+ .basePackage(properties.getBasePackage())
+ .schemaName(properties.getSchemaName())
+ //数据库表前缀,生成entity名称时会去掉
+ .tablePrefix(properties.getTablePrefix())
+ .idType(properties.getIdType())
+ .dateType(properties.getDateType())
+ .nameConverter(nameConverterObjectProvider.getIfAvailable())
+ .typeConvert(typeConvertObjectProvider.getIfAvailable())
+ .templateVaribleInjecter(templateVaribleInjecterObjectProvider.getIfAvailable())
+ .build();
+ }
+}
diff --git a/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/configuration/OpenApiResourceAdvice.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/configuration/OpenApiResourceAdvice.java
new file mode 100644
index 0000000..6c9f9d9
--- /dev/null
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/configuration/OpenApiResourceAdvice.java
@@ -0,0 +1,31 @@
+package com.github.davidfantasy.mybatisplus.generatorui.common.core.configuration;
+
+import com.github.davidfantasy.mybatisplus.generatorui.common.api.Result;
+import com.github.davidfantasy.mybatisplus.generatorui.common.api.ResultGenerator;
+import com.github.davidfantasy.mybatisplus.generatorui.common.api.ServiceException;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+/**
+ * The type Open api resource advice.
+ *
+ * @author bnasslashen
+ */
+@RestControllerAdvice
+class OpenApiResourceAdvice {
+ /**
+ * Handle no handler found response entity.
+ *
+ * @param e the e
+ * @return the response entity
+ */
+ @ExceptionHandler(ServiceException.class)
+ @ResponseStatus(HttpStatus.NOT_FOUND)
+ public ResponseEntity handleNoHandlerFound(ServiceException e) {
+ return ResponseEntity.status(HttpStatus.NOT_FOUND)
+ .body(ResultGenerator.genFailResult(e.getMessage()));
+ }
+}
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/configurer/WebControllerAdvice.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/configuration/WebControllerAdvice.java
similarity index 80%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/configurer/WebControllerAdvice.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/configuration/WebControllerAdvice.java
index e38cae9..1a1884e 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/configurer/WebControllerAdvice.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/configuration/WebControllerAdvice.java
@@ -1,16 +1,14 @@
-package com.github.davidfantasy.mybatisplus.generatorui.configurer;
+package com.github.davidfantasy.mybatisplus.generatorui.common.core.configuration;
-import com.github.davidfantasy.mybatisplus.generatorui.common.Result;
-import com.github.davidfantasy.mybatisplus.generatorui.common.ResultCode;
-import com.github.davidfantasy.mybatisplus.generatorui.common.ServiceException;
+import com.github.davidfantasy.mybatisplus.generatorui.common.api.Result;
+import com.github.davidfantasy.mybatisplus.generatorui.common.api.ResultCode;
+import com.github.davidfantasy.mybatisplus.generatorui.common.api.ServiceException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.NoHandlerFoundException;
-
-
/**
* 用于全局异常处理
*/
@@ -37,4 +35,4 @@ public Result exceptionHandler(Exception e) {
return result;
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/GeneratorConfig.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/properties/GeneratorConfig.java
similarity index 82%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/GeneratorConfig.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/properties/GeneratorConfig.java
index 0e082d0..98022e3 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/GeneratorConfig.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/properties/GeneratorConfig.java
@@ -1,18 +1,19 @@
-package com.github.davidfantasy.mybatisplus.generatorui;
+package com.github.davidfantasy.mybatisplus.generatorui.common.core.properties;
-import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.config.ITypeConvert;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
-import com.github.davidfantasy.mybatisplus.generatorui.mbp.NameConverter;
-import com.github.davidfantasy.mybatisplus.generatorui.mbp.TemplateVaribleInjecter;
+import com.github.davidfantasy.mybatisplus.generatorui.common.mbp.NameConverter;
+import com.github.davidfantasy.mybatisplus.generatorui.common.mbp.TemplateVaribleInjecter;
+import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
-
-import java.util.Objects;
+import lombok.NoArgsConstructor;
@Builder
@Data
+@NoArgsConstructor
+@AllArgsConstructor
public class GeneratorConfig {
/**
@@ -23,7 +24,7 @@ public class GeneratorConfig {
/**
* 生成的文件所保存的包路径
*/
- private String basePackage = "generatorui.default";
+ private String basePackage = "generatorui.mydefault";
/**
* 数据库地址
diff --git a/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/properties/SpringDocConfigProperties.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/properties/SpringDocConfigProperties.java
new file mode 100644
index 0000000..0a7003b
--- /dev/null
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/core/properties/SpringDocConfigProperties.java
@@ -0,0 +1,93 @@
+/*
+ *
+ * *
+ * * *
+ * * * * Copyright 2019-2022 the original author or authors.
+ * * * *
+ * * * * Licensed under the Apache License, Version 2.0 (the "License");
+ * * * * you may not use this file except in compliance with the License.
+ * * * * You may obtain a copy of the License at
+ * * * *
+ * * * * https://www.apache.org/licenses/LICENSE-2.0
+ * * * *
+ * * * * Unless required by applicable law or agreed to in writing, software
+ * * * * distributed under the License is distributed on an "AS IS" BASIS,
+ * * * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * * * * See the License for the specific language governing permissions and
+ * * * * limitations under the License.
+ * * *
+ * *
+ *
+ */
+
+package com.github.davidfantasy.mybatisplus.generatorui.common.core.properties;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.generator.config.rules.DateType;
+import com.github.davidfantasy.mybatisplus.generatorui.common.util.Constants;
+import lombok.Data;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Lazy;
+
+/**
+ * 关于生成器的配置文件
+ *
+ * @author bnasslahsen
+ */
+@Data
+@Lazy(false)
+@ConfigurationProperties(prefix = Constants.MYBATISPLUS_GENETATORUI_PREFIX)
+@ConditionalOnProperty(name = Constants.MYBATISPLUS_GENETATORUI_ENABLED, matchIfMissing = true)
+public class SpringDocConfigProperties {
+ /**
+ * 服务启动的端口号
+ */
+ private Integer port = 8068;
+
+ /**
+ * 生成的文件所保存的包路径
+ */
+ private String basePackage = "generatorui.mydefault";
+
+ /**
+ * 数据库地址
+ */
+ private String jdbcUrl;
+
+ /**
+ * 数据库schema,POSTGRE_SQL,ORACLE,DB2,MSSQL类型的数据库需要指定
+ */
+ private String schemaName;
+
+ /**
+ * 数据库用户名
+ */
+ private String userName;
+
+ /**
+ * 数据库密码
+ */
+ private String password;
+
+ /**
+ * 数据库驱动名
+ */
+ private String driverClassName = "com.mysql.cj.jdbc.Driver";
+
+ /**
+ * 数据库时间类型与java class的对应策略
+ */
+ private DateType dateType;
+
+ /**
+ * 表前缀,如果设置后会在生成entity名称时去掉该后缀
+ */
+ private String tablePrefix;
+
+ /**
+ * 全局指定数据表中ID的生成模式,影响自动生成的Entity中ID字段的注解
+ */
+ private IdType idType;
+
+}
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dbquery/DbQueryHolder.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dbquery/DbQueryHolder.java
similarity index 93%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dbquery/DbQueryHolder.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dbquery/DbQueryHolder.java
index 9566f99..72f736a 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dbquery/DbQueryHolder.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dbquery/DbQueryHolder.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.dbquery;
+package com.github.davidfantasy.mybatisplus.generatorui.common.dbquery;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dbquery/SqlServerQuery.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dbquery/SqlServerQuery.java
similarity index 90%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dbquery/SqlServerQuery.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dbquery/SqlServerQuery.java
index 5f0be8b..8a15ad4 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dbquery/SqlServerQuery.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dbquery/SqlServerQuery.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.dbquery;
+package com.github.davidfantasy.mybatisplus.generatorui.common.dbquery;
public class SqlServerQuery extends com.baomidou.mybatisplus.generator.config.querys.SqlServerQuery {
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/Constant.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/Constant.java
similarity index 93%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/Constant.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/Constant.java
index dc62634..98d8c95 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/Constant.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/Constant.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.dto;
+package com.github.davidfantasy.mybatisplus.generatorui.common.dto;
public class Constant {
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/DtoFieldInfo.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/DtoFieldInfo.java
similarity index 94%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/DtoFieldInfo.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/DtoFieldInfo.java
index 37e1a35..b2c80eb 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/DtoFieldInfo.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/DtoFieldInfo.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.dto;
+package com.github.davidfantasy.mybatisplus.generatorui.common.dto;
import cn.hutool.core.util.StrUtil;
import com.github.javaparser.ast.NodeList;
diff --git a/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/ElementPosition.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/ElementPosition.java
new file mode 100644
index 0000000..36b0dde
--- /dev/null
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/ElementPosition.java
@@ -0,0 +1,5 @@
+package com.github.davidfantasy.mybatisplus.generatorui.common.dto;
+
+public enum ElementPosition {
+ FIRST, LAST
+}
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/GenDtoConfig.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/GenDtoConfig.java
similarity index 97%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/GenDtoConfig.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/GenDtoConfig.java
index 41ffc56..0b96fb3 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/GenDtoConfig.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/GenDtoConfig.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.dto;
+package com.github.davidfantasy.mybatisplus.generatorui.common.dto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.google.common.base.Strings;
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/GenDtoFromSqlReq.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/GenDtoFromSqlReq.java
similarity index 67%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/GenDtoFromSqlReq.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/GenDtoFromSqlReq.java
index 5778546..2009d05 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/GenDtoFromSqlReq.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/GenDtoFromSqlReq.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.dto;
+package com.github.davidfantasy.mybatisplus.generatorui.common.dto;
import lombok.Data;
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/GenSetting.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/GenSetting.java
similarity index 70%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/GenSetting.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/GenSetting.java
index 9a5359d..1ce502d 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/GenSetting.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/GenSetting.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.dto;
+package com.github.davidfantasy.mybatisplus.generatorui.common.dto;
import lombok.Data;
@@ -13,6 +13,12 @@ public class GenSetting {
/**
* 需要生成的文件类型
+ * @see Constant.FILE_TYPE_ENTITY
+ * @see Constant.FILE_TYPE_MAPPER
+ * @see Constant.FILE_TYPE_MAPPER_XML
+ * @see Constant.FILE_TYPE_CONTROLLER
+ * @see Constant.FILE_TYPE_SERVICE
+ * @see Constant.FILE_TYPE_SERVICEIMPL
*/
private List choosedOutputFiles;
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/JavaClassMethodInfo.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/JavaClassMethodInfo.java
similarity index 83%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/JavaClassMethodInfo.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/JavaClassMethodInfo.java
index 7a5db79..10e4a18 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/JavaClassMethodInfo.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/JavaClassMethodInfo.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.dto;
+package com.github.davidfantasy.mybatisplus.generatorui.common.dto;
import lombok.Builder;
import lombok.Data;
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/MapperElement.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/MapperElement.java
similarity index 78%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/MapperElement.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/MapperElement.java
index df02c21..be92d2b 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/MapperElement.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/MapperElement.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.dto;
+package com.github.davidfantasy.mybatisplus.generatorui.common.dto;
import lombok.Builder;
import lombok.Data;
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/MpgGenCodeDto.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/MpgGenCodeDto.java
similarity index 69%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/MpgGenCodeDto.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/MpgGenCodeDto.java
index e93f961..b804291 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/MpgGenCodeDto.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/MpgGenCodeDto.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.dto;
+package com.github.davidfantasy.mybatisplus.generatorui.common.dto;
import lombok.Data;
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/OutputFileInfo.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/OutputFileInfo.java
similarity index 91%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/OutputFileInfo.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/OutputFileInfo.java
index 3b524f1..bad111f 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/OutputFileInfo.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/OutputFileInfo.java
@@ -1,12 +1,11 @@
-package com.github.davidfantasy.mybatisplus.generatorui.dto;
+package com.github.davidfantasy.mybatisplus.generatorui.common.dto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.github.davidfantasy.mybatisplus.generatorui.common.ServiceException;
import com.google.common.base.Strings;
import lombok.Data;
-import static com.github.davidfantasy.mybatisplus.generatorui.dto.Constant.*;
+import static com.github.davidfantasy.mybatisplus.generatorui.common.dto.Constant.*;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/TableInfo.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/TableInfo.java
similarity index 62%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/TableInfo.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/TableInfo.java
index de978a0..dba50db 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/TableInfo.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/TableInfo.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.dto;
+package com.github.davidfantasy.mybatisplus.generatorui.common.dto;
import lombok.Data;
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/UserConfig.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/UserConfig.java
similarity index 94%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/UserConfig.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/UserConfig.java
index c2a86e5..66a8c0f 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/dto/UserConfig.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/dto/UserConfig.java
@@ -1,14 +1,14 @@
-package com.github.davidfantasy.mybatisplus.generatorui.dto;
+package com.github.davidfantasy.mybatisplus.generatorui.common.dto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.github.davidfantasy.mybatisplus.generatorui.strategy.*;
+import com.github.davidfantasy.mybatisplus.generatorui.common.strategy.*;
import com.google.common.base.Strings;
import lombok.Data;
import java.util.List;
-import static com.github.davidfantasy.mybatisplus.generatorui.dto.Constant.*;
+import static com.github.davidfantasy.mybatisplus.generatorui.common.dto.Constant.*;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/mbp/BeetlTemplateEngine.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/mbp/BeetlTemplateEngine.java
similarity index 94%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/mbp/BeetlTemplateEngine.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/mbp/BeetlTemplateEngine.java
index 9cf57f6..026cf9d 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/mbp/BeetlTemplateEngine.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/mbp/BeetlTemplateEngine.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.mbp;
+package com.github.davidfantasy.mybatisplus.generatorui.common.mbp;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.generator.config.OutputFile;
@@ -22,8 +22,8 @@
import java.util.List;
import java.util.Map;
-import static com.github.davidfantasy.mybatisplus.generatorui.dto.Constant.RESOURCE_PREFIX_CLASSPATH;
-import static com.github.davidfantasy.mybatisplus.generatorui.dto.Constant.RESOURCE_PREFIX_FILE;
+import static com.github.davidfantasy.mybatisplus.generatorui.common.dto.Constant.RESOURCE_PREFIX_CLASSPATH;
+import static com.github.davidfantasy.mybatisplus.generatorui.common.dto.Constant.RESOURCE_PREFIX_FILE;
/**
* 对原模板引擎进行改造,使其支持file和classpath两类加载模式
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/mbp/MbpGenerator.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/mbp/MbpGenerator.java
similarity index 87%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/mbp/MbpGenerator.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/mbp/MbpGenerator.java
index cabf551..5b4912d 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/mbp/MbpGenerator.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/mbp/MbpGenerator.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.mbp;
+package com.github.davidfantasy.mybatisplus.generatorui.common.mbp;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
@@ -10,16 +10,16 @@
import com.baomidou.mybatisplus.generator.config.po.TableField;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.fill.Column;
-import com.github.davidfantasy.mybatisplus.generatorui.GeneratorConfig;
-import com.github.davidfantasy.mybatisplus.generatorui.ProjectPathResolver;
-import com.github.davidfantasy.mybatisplus.generatorui.common.ServiceException;
-import com.github.davidfantasy.mybatisplus.generatorui.dto.Constant;
-import com.github.davidfantasy.mybatisplus.generatorui.dto.GenSetting;
-import com.github.davidfantasy.mybatisplus.generatorui.dto.OutputFileInfo;
-import com.github.davidfantasy.mybatisplus.generatorui.dto.UserConfig;
-import com.github.davidfantasy.mybatisplus.generatorui.service.UserConfigStore;
-import com.github.davidfantasy.mybatisplus.generatorui.strategy.*;
-import com.github.davidfantasy.mybatisplus.generatorui.util.PathUtil;
+import com.github.davidfantasy.mybatisplus.generatorui.common.ProjectPathResolver;
+import com.github.davidfantasy.mybatisplus.generatorui.common.api.ServiceException;
+import com.github.davidfantasy.mybatisplus.generatorui.common.core.properties.GeneratorConfig;
+import com.github.davidfantasy.mybatisplus.generatorui.common.dto.Constant;
+import com.github.davidfantasy.mybatisplus.generatorui.common.dto.GenSetting;
+import com.github.davidfantasy.mybatisplus.generatorui.common.dto.OutputFileInfo;
+import com.github.davidfantasy.mybatisplus.generatorui.common.dto.UserConfig;
+import com.github.davidfantasy.mybatisplus.generatorui.common.service.UserConfigStore;
+import com.github.davidfantasy.mybatisplus.generatorui.common.strategy.*;
+import com.github.davidfantasy.mybatisplus.generatorui.common.util.PathUtil;
import com.google.common.collect.Maps;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -69,17 +69,18 @@ public void genCodeBatch(GenSetting genSetting, List tables) {
builder.dateType(generatorConfig.getDateType());
//指定所有生成文件的根目录
builder.outputDir(projectPathResolver.getSourcePath());
- builder.author(StringUtils.hasText(genSetting.getAuthor()) ? genSetting.getAuthor(): System.getProperty("user.name"));
+ builder.author(StringUtils.hasText(genSetting.getAuthor()) ? genSetting.getAuthor() : System.getProperty("user.name"));
if (userConfig.getEntityStrategy().isSwagger2()) {
builder.enableSwagger();
}
}).templateEngine(beetlTemplateEngine).packageConfig(builder -> {
configPackage(builder, genSetting.getModuleName(), userConfig);
- }).templateConfig(builder -> {
- configTemplate(builder, genSetting.getChoosedOutputFiles(), userConfig);
- }).injectionConfig(builder -> {
+ })
+ .injectionConfig(builder -> {
configInjection(builder, userConfig, genSetting);
}).strategyConfig(builder -> {
+ //设置模版移到这个里面来了
+ configTemplate(builder, genSetting.getChoosedOutputFiles(), userConfig);
builder.addInclude(String.join(",", tables))
.disableSqlFilter()
.enableSkipView();
@@ -112,30 +113,30 @@ private void configPackage(PackageConfig.Builder builder, String moduleName, Use
.pathInfo(Collections.singletonMap(OutputFile.xml, mapperXmlOutputPath));
}
- private void configTemplate(TemplateConfig.Builder builder, List choosedFileTypes, UserConfig userConfig) {
- builder.entity(findTemplatePath(Constant.FILE_TYPE_ENTITY, userConfig));
- builder.mapper(findTemplatePath(Constant.FILE_TYPE_MAPPER, userConfig));
- builder.xml(findTemplatePath(Constant.FILE_TYPE_MAPPER_XML, userConfig));
- builder.service(findTemplatePath(Constant.FILE_TYPE_SERVICE, userConfig));
- builder.serviceImpl(findTemplatePath(Constant.FILE_TYPE_SERVICEIMPL, userConfig));
- builder.controller(findTemplatePath(Constant.FILE_TYPE_CONTROLLER, userConfig));
+ private void configTemplate(StrategyConfig.Builder builder, List choosedFileTypes, UserConfig userConfig) {
+ builder.entityBuilder().javaTemplate(findTemplatePath(Constant.FILE_TYPE_ENTITY, userConfig));
+ builder.mapperBuilder().mapperTemplate(findTemplatePath(Constant.FILE_TYPE_MAPPER, userConfig));
+ builder.mapperBuilder().mapperXmlTemplate(findTemplatePath(Constant.FILE_TYPE_MAPPER_XML, userConfig));
+ builder.serviceBuilder().serviceTemplate(findTemplatePath(Constant.FILE_TYPE_SERVICE, userConfig));
+ builder.serviceBuilder().serviceImplTemplate(findTemplatePath(Constant.FILE_TYPE_SERVICEIMPL, userConfig));
+ builder.controllerBuilder().template(findTemplatePath(Constant.FILE_TYPE_CONTROLLER, userConfig));
if (!choosedFileTypes.contains(Constant.FILE_TYPE_ENTITY)) {
- builder.disable(TemplateType.ENTITY);
+ builder.entityBuilder().disable();
}
if (!choosedFileTypes.contains(Constant.FILE_TYPE_MAPPER)) {
- builder.disable(TemplateType.MAPPER);
+ builder.mapperBuilder().disableMapper();
}
if (!choosedFileTypes.contains(Constant.FILE_TYPE_MAPPER_XML)) {
- builder.disable(TemplateType.XML);
+ builder.mapperBuilder().disableMapperXml();
}
if (!choosedFileTypes.contains(Constant.FILE_TYPE_SERVICE)) {
- builder.disable(TemplateType.SERVICE);
+ builder.serviceBuilder().disableService();
}
if (!choosedFileTypes.contains(Constant.FILE_TYPE_SERVICEIMPL)) {
- builder.disable(TemplateType.SERVICE_IMPL);
+ builder.serviceBuilder().disableServiceImpl();
}
if (!choosedFileTypes.contains(Constant.FILE_TYPE_CONTROLLER)) {
- builder.disable(TemplateType.CONTROLLER);
+ builder.controllerBuilder().disable();
}
}
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/mbp/NameConverter.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/mbp/NameConverter.java
similarity index 88%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/mbp/NameConverter.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/mbp/NameConverter.java
index b943a52..625c323 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/mbp/NameConverter.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/mbp/NameConverter.java
@@ -1,11 +1,11 @@
-package com.github.davidfantasy.mybatisplus.generatorui.mbp;
+package com.github.davidfantasy.mybatisplus.generatorui.common.mbp;
import cn.hutool.core.util.StrUtil;
-import com.github.davidfantasy.mybatisplus.generatorui.dto.Constant;
+import com.github.davidfantasy.mybatisplus.generatorui.common.dto.Constant;
import com.google.common.base.Strings;
-import static com.github.davidfantasy.mybatisplus.generatorui.dto.Constant.DOT_JAVA;
-import static com.github.davidfantasy.mybatisplus.generatorui.dto.Constant.DOT_XML;
+import static com.github.davidfantasy.mybatisplus.generatorui.common.dto.Constant.DOT_JAVA;
+import static com.github.davidfantasy.mybatisplus.generatorui.common.dto.Constant.DOT_XML;
/**
* 自定义各类名称转换的规则
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/mbp/TemplateVaribleInjecter.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/mbp/TemplateVaribleInjecter.java
similarity index 75%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/mbp/TemplateVaribleInjecter.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/mbp/TemplateVaribleInjecter.java
index bb07045..3114155 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/mbp/TemplateVaribleInjecter.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/mbp/TemplateVaribleInjecter.java
@@ -1,4 +1,4 @@
-package com.github.davidfantasy.mybatisplus.generatorui.mbp;
+package com.github.davidfantasy.mybatisplus.generatorui.common.mbp;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/service/AutoCompleteService.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/service/AutoCompleteService.java
similarity index 87%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/service/AutoCompleteService.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/service/AutoCompleteService.java
index 034bd1a..8926010 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/service/AutoCompleteService.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/service/AutoCompleteService.java
@@ -1,8 +1,8 @@
-package com.github.davidfantasy.mybatisplus.generatorui.service;
+package com.github.davidfantasy.mybatisplus.generatorui.common.service;
import cn.hutool.core.io.FileUtil;
-import com.github.davidfantasy.mybatisplus.generatorui.ProjectPathResolver;
-import com.github.davidfantasy.mybatisplus.generatorui.common.ServiceException;
+import com.github.davidfantasy.mybatisplus.generatorui.common.ProjectPathResolver;
+import com.github.davidfantasy.mybatisplus.generatorui.common.api.ServiceException;
import com.google.common.base.Strings;
import com.google.common.collect.Sets;
import org.springframework.beans.factory.annotation.Autowired;
@@ -11,7 +11,7 @@
import java.io.File;
import java.util.Set;
-import static com.github.davidfantasy.mybatisplus.generatorui.dto.Constant.*;
+import static com.github.davidfantasy.mybatisplus.generatorui.common.dto.Constant.*;
@Service
public class AutoCompleteService {
diff --git a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/service/DatabaseService.java b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/service/DatabaseService.java
similarity index 85%
rename from src/main/java/com/github/davidfantasy/mybatisplus/generatorui/service/DatabaseService.java
rename to mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/service/DatabaseService.java
index 73f5056..4115f6c 100644
--- a/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/service/DatabaseService.java
+++ b/mybatis-plus-generator-ui-starter-common/src/main/java/com/github/davidfantasy/mybatisplus/generatorui/common/service/DatabaseService.java
@@ -1,15 +1,16 @@
-package com.github.davidfantasy.mybatisplus.generatorui.service;
+package com.github.davidfantasy.mybatisplus.generatorui.common.service;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.IDbQuery;
-import com.github.davidfantasy.mybatisplus.generatorui.dbquery.DbQueryHolder;
-import com.github.davidfantasy.mybatisplus.generatorui.dto.TableInfo;
+import com.github.davidfantasy.mybatisplus.generatorui.common.dbquery.DbQueryHolder;
+import com.github.davidfantasy.mybatisplus.generatorui.common.dto.TableInfo;
import com.google.common.collect.Lists;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
+import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -28,6 +29,7 @@ public class DatabaseService {
public List getTablesFromDb() {
IDbQuery dbQuery = dbQueryHolder.getDbQuery(dataSourceConfig.getDbType());
+ //利用jdbcTemplate来查询数据库表信息,然后组装信息
List