diff --git a/src/main/java/firok/spring/mvci/Constants.java b/src/main/java/firok/spring/mvci/Constants.java index 0364ff7..afa5a1a 100644 --- a/src/main/java/firok/spring/mvci/Constants.java +++ b/src/main/java/firok/spring/mvci/Constants.java @@ -5,7 +5,6 @@ public final class Constants public static final String BEAN_NAME_FULL = "##BEAN_NAME_FULL##"; public static final String BEAN_NAME_SHORT = "##BEAN_NAME_SHORT##"; public static final String BEAN_PACKAGE = "##BEAN_PACKAGE##"; - public static final String BASE_PACKAGE = "##BASE_PACKAGE##"; public static final String MAPPER_NAME = "##MAPPER_NAME##"; public static final String SERVICE_NAME = "##SERVICE_NAME##"; diff --git a/src/main/java/firok/spring/mvci/internal/BeanContext.java b/src/main/java/firok/spring/mvci/internal/BeanContext.java index 47a9497..61ebc62 100644 --- a/src/main/java/firok/spring/mvci/internal/BeanContext.java +++ b/src/main/java/firok/spring/mvci/internal/BeanContext.java @@ -149,21 +149,36 @@ private static String nonDefault(List configs, Function extras) + { + mapExtraParams.put(valueKey, RegexPipeline.pipelineAll(valueTemplate, mapExtraParams, extras)); + } private void single(String valueKey, String valueTemplate) { - mapExtraParams.put(valueKey, RegexPipeline.pipelineAll(valueTemplate, mapExtraParams)); + mapExtraParams.put(valueKey, RegexPipeline.pipelineAll(valueTemplate, mapExtraParams, null)); } private void write(String valueKeyLocation, String valueKeyName, String templateContent) throws Exception { String valueLocation = mapExtraParams.get(valueKeyLocation); String valueName = mapExtraParams.get(valueKeyName); - String valueContent = RegexPipeline.pipelineAll(templateContent, mapExtraParams); + String valueContent = RegexPipeline.pipelineAll(templateContent, mapExtraParams, null); try(var writer = mvci.createSourceFileWrite(valueLocation + "." + valueName)) { writer.write(valueContent); writer.flush(); } } + private static final Map paramMapper = new HashMap<>(); + private static final Map paramService = new HashMap<>(); + private static final Map paramServiceImpl = new HashMap<>(); + private static final Map paramController = new HashMap<>(); + static + { + paramMapper.put("\\.entity\\.|\\.bean\\.",".mapper."); + paramService.put("\\.entity\\.|\\.bean\\.",".service."); + paramServiceImpl.put("\\.entity\\.|\\.bean\\.",".service_impl."); + paramController.put("\\.entity\\.|\\.bean\\.",".controller."); + } @SneakyThrows public void generate() @@ -183,15 +198,10 @@ else if(beanNameFull.endsWith("Entity")) beanNameShort = beanNameFull.substring(0,beanNameFull.length()-6); else beanNameShort = beanNameFull; String beanPackage = beanQualifiedName.substring(0, beanQualifiedNameLastDot); - String basePackage; - if(beanPackage.endsWith(".entity")) basePackage = beanPackage.substring(0, beanPackage.length() - 7); - else if(beanPackage.endsWith(".bean")) basePackage = beanPackage.substring(0, beanPackage.length() - 5); - else basePackage = beanPackage; mapExtraParams.put(BEAN_NAME_FULL, beanNameFull); mapExtraParams.put(BEAN_NAME_SHORT, beanNameShort); mapExtraParams.put(BEAN_PACKAGE, beanPackage); - mapExtraParams.put(BASE_PACKAGE, basePackage); // 根据配置 处理各种参数 shouldMapper = should(configs, MVCIntrospective::generateMapper); @@ -220,10 +230,10 @@ else if(beanNameFull.endsWith("Entity")) single(SERVICE_IMPL_NAME, templateServiceImplName); single(CONTROLLER_NAME, templateControllerName); - single(MAPPER_PACKAGE, templateMapperPackage); - single(SERVICE_PACKAGE, templateServicePackage); - single(SERVICE_IMPL_PACKAGE, templateServiceImplPackage); - single(CONTROLLER_PACKAGE, templateControllerPackage); + single(MAPPER_PACKAGE, templateMapperPackage, paramMapper); + single(SERVICE_PACKAGE, templateServicePackage, paramService); + single(SERVICE_IMPL_PACKAGE, templateServiceImplPackage, paramServiceImpl); + single(CONTROLLER_PACKAGE, templateControllerPackage, paramController); // 生成代码文件 if(shouldMapper) write(MAPPER_PACKAGE, MAPPER_NAME, templateMapper); diff --git a/src/main/java/firok/spring/mvci/internal/RegexPipeline.java b/src/main/java/firok/spring/mvci/internal/RegexPipeline.java index 70e77f7..90b52a9 100644 --- a/src/main/java/firok/spring/mvci/internal/RegexPipeline.java +++ b/src/main/java/firok/spring/mvci/internal/RegexPipeline.java @@ -6,7 +6,7 @@ public class RegexPipeline { - public static String pipelineAll(String content, Map mapParams) + public static String pipelineAll(String content, Map mapParams, Map extras) { for(var entryParam : mapParams.entrySet()) { @@ -17,6 +17,18 @@ public static String pipelineAll(String content, Map mapParams) content = regexPattern.matcher(content).replaceAll(replacement); } + if(extras != null) + { + for(var entryParam : extras.entrySet()) + { + String regexString = entryParam.getKey(); + String replacement = entryParam.getValue(); + + Pattern regexPattern = getPattern(regexString); + + content = regexPattern.matcher(content).replaceAll(replacement); + } + } return content; } public static String pipelineFirst(String content, Map mapParams) diff --git a/src/main/resources/controller.package.txt b/src/main/resources/controller.package.txt index b98ce43..2e31e30 100644 --- a/src/main/resources/controller.package.txt +++ b/src/main/resources/controller.package.txt @@ -1 +1 @@ -##BASE_PACKAGE##.controller \ No newline at end of file +##BEAN_PACKAGE## \ No newline at end of file diff --git a/src/main/resources/mapper.package.txt b/src/main/resources/mapper.package.txt index f20f93e..2e31e30 100644 --- a/src/main/resources/mapper.package.txt +++ b/src/main/resources/mapper.package.txt @@ -1 +1 @@ -##BASE_PACKAGE##.mapper \ No newline at end of file +##BEAN_PACKAGE## \ No newline at end of file diff --git a/src/main/resources/service.package.txt b/src/main/resources/service.package.txt index 2f1b7e8..2e31e30 100644 --- a/src/main/resources/service.package.txt +++ b/src/main/resources/service.package.txt @@ -1 +1 @@ -##BASE_PACKAGE##.service \ No newline at end of file +##BEAN_PACKAGE## \ No newline at end of file diff --git a/src/main/resources/service_impl.package.txt b/src/main/resources/service_impl.package.txt index 0acc3a6..2e31e30 100644 --- a/src/main/resources/service_impl.package.txt +++ b/src/main/resources/service_impl.package.txt @@ -1 +1 @@ -##BASE_PACKAGE##.service_impl \ No newline at end of file +##BEAN_PACKAGE## \ No newline at end of file