diff --git a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/MybatisFlexProcessor.java b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/MybatisFlexProcessor.java index 4a8c3dd7..9704f319 100644 --- a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/MybatisFlexProcessor.java +++ b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/MybatisFlexProcessor.java @@ -121,6 +121,7 @@ public class MybatisFlexProcessor extends AbstractProcessor { // mapper 配置 String mapperGenerateEnable = configuration.get(ConfigurationKey.MAPPER_GENERATE_ENABLE); + String mapperAnnotation = configuration.get(ConfigurationKey.MAPPER_ANNOTATION); String mapperPackage = configuration.get(ConfigurationKey.MAPPER_PACKAGE); String mapperBaseClass = configuration.get(ConfigurationKey.MAPPER_BASE_CLASS); @@ -191,7 +192,8 @@ public class MybatisFlexProcessor extends AbstractProcessor { if ("true".equalsIgnoreCase(mapperGenerateEnable) && table.mapperGenerateEnable()) { String realMapperPackage = StrUtil.isBlank(mapperPackage) ? StrUtil.buildMapperPackage(entityClass) : mapperPackage; String mapperClassName = entityClassName.concat("Mapper"); - String mapperClassContent = ContentBuilder.buildMapper(entityClass, entityClassName, realMapperPackage, mapperClassName, mapperBaseClass); + boolean mapperAnnotationEnable = "true".equalsIgnoreCase(mapperAnnotation); + String mapperClassContent = ContentBuilder.buildMapper(entityClass, entityClassName, realMapperPackage, mapperClassName, mapperBaseClass, mapperAnnotationEnable); processGenClass(genPath, realMapperPackage, mapperClassName, mapperClassContent); } @@ -385,4 +387,4 @@ public class MybatisFlexProcessor extends AbstractProcessor { } } -} \ No newline at end of file +} diff --git a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/builder/ContentBuilder.java b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/builder/ContentBuilder.java index a0935216..9bee72c3 100644 --- a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/builder/ContentBuilder.java +++ b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/builder/ContentBuilder.java @@ -40,11 +40,19 @@ public class ContentBuilder { * 构建 Mapper 文件内容。 */ public static String buildMapper(String entityClass, String entityClassName, - String mappersPackage, String mapperClassName, String baseMapperClass) { + String mappersPackage, String mapperClassName, String baseMapperClass, boolean mapperAnnotationEnable) { StringBuilder content = new StringBuilder("package "); content.append(mappersPackage).append(";\n\n"); - content.append("import ").append(baseMapperClass).append(";\n"); - content.append("import ").append(entityClass).append(";\n\n"); + content.append(mapperAnnotationEnable ? "" : ""); + if (mapperAnnotationEnable) { + content.append("import org.apache.ibatis.annotations.Mapper;\n"); + content.append("import ").append(baseMapperClass).append(";\n"); + content.append("import ").append(entityClass).append(";\n\n"); + content.append("@Mapper\n"); + } else { + content.append("import ").append(baseMapperClass).append(";\n"); + content.append("import ").append(entityClass).append(";\n\n"); + } String realEntityClassName = StrUtil.getClassName(entityClass); String baseMapperClassName = StrUtil.getClassName(baseMapperClass); content.append("public interface ").append(mapperClassName).append(" extends ").append(baseMapperClassName).append("<").append(realEntityClassName).append("> {\n}"); @@ -126,4 +134,4 @@ public class ContentBuilder { .append(" = new ").append(tableDefClassName).append("();\n"); } -} \ No newline at end of file +} diff --git a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/config/ConfigurationKey.java b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/config/ConfigurationKey.java index a43cb96c..ae76ebd9 100644 --- a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/config/ConfigurationKey.java +++ b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/config/ConfigurationKey.java @@ -56,6 +56,11 @@ public enum ConfigurationKey { */ MAPPER_GENERATE_ENABLE("processor.mapper.generateEnable", "false"), + /** + * 开启 @Mapper 注解。 + */ + MAPPER_ANNOTATION("processor.mapper.annotation", "false"), + /** * 自定义 Mapper 的父类。 */ @@ -114,4 +119,4 @@ public enum ConfigurationKey { return defaultValue; } -} \ No newline at end of file +} diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/mybatis-flex.config b/mybatis-flex-test/mybatis-flex-spring-boot-test/mybatis-flex.config index e279d35b..7baa856c 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/mybatis-flex.config +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/mybatis-flex.config @@ -1,4 +1,5 @@ processor.mapper.generateEnable=true +processor.mapper.annotation=true processor.tableDef.ignoreEntitySuffixes=Entity #processor.allInTables.enable=true processor.mapper.baseClass=com.mybatisflex.test.mapper.MyBaseMapper