feat: apt新增processor.mapper.annotation配置是否生成@Mapper注解

This commit is contained in:
cainiao3853 2023-07-14 09:56:45 +08:00
parent 98cc384809
commit 549e3e42ab
4 changed files with 23 additions and 7 deletions

View File

@ -121,6 +121,7 @@ public class MybatisFlexProcessor extends AbstractProcessor {
// mapper 配置 // mapper 配置
String mapperGenerateEnable = configuration.get(ConfigurationKey.MAPPER_GENERATE_ENABLE); String mapperGenerateEnable = configuration.get(ConfigurationKey.MAPPER_GENERATE_ENABLE);
String mapperAnnotation = configuration.get(ConfigurationKey.MAPPER_ANNOTATION);
String mapperPackage = configuration.get(ConfigurationKey.MAPPER_PACKAGE); String mapperPackage = configuration.get(ConfigurationKey.MAPPER_PACKAGE);
String mapperBaseClass = configuration.get(ConfigurationKey.MAPPER_BASE_CLASS); String mapperBaseClass = configuration.get(ConfigurationKey.MAPPER_BASE_CLASS);
@ -191,7 +192,8 @@ public class MybatisFlexProcessor extends AbstractProcessor {
if ("true".equalsIgnoreCase(mapperGenerateEnable) && table.mapperGenerateEnable()) { if ("true".equalsIgnoreCase(mapperGenerateEnable) && table.mapperGenerateEnable()) {
String realMapperPackage = StrUtil.isBlank(mapperPackage) ? StrUtil.buildMapperPackage(entityClass) : mapperPackage; String realMapperPackage = StrUtil.isBlank(mapperPackage) ? StrUtil.buildMapperPackage(entityClass) : mapperPackage;
String mapperClassName = entityClassName.concat("Mapper"); 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); processGenClass(genPath, realMapperPackage, mapperClassName, mapperClassContent);
} }

View File

@ -40,11 +40,19 @@ public class ContentBuilder {
* 构建 Mapper 文件内容 * 构建 Mapper 文件内容
*/ */
public static String buildMapper(String entityClass, String entityClassName, 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 "); StringBuilder content = new StringBuilder("package ");
content.append(mappersPackage).append(";\n\n"); content.append(mappersPackage).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(baseMapperClass).append(";\n");
content.append("import ").append(entityClass).append(";\n\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 realEntityClassName = StrUtil.getClassName(entityClass);
String baseMapperClassName = StrUtil.getClassName(baseMapperClass); String baseMapperClassName = StrUtil.getClassName(baseMapperClass);
content.append("public interface ").append(mapperClassName).append(" extends ").append(baseMapperClassName).append("<").append(realEntityClassName).append("> {\n}"); content.append("public interface ").append(mapperClassName).append(" extends ").append(baseMapperClassName).append("<").append(realEntityClassName).append("> {\n}");

View File

@ -56,6 +56,11 @@ public enum ConfigurationKey {
*/ */
MAPPER_GENERATE_ENABLE("processor.mapper.generateEnable", "false"), MAPPER_GENERATE_ENABLE("processor.mapper.generateEnable", "false"),
/**
* 开启 @Mapper 注解
*/
MAPPER_ANNOTATION("processor.mapper.annotation", "false"),
/** /**
* 自定义 Mapper 的父类 * 自定义 Mapper 的父类
*/ */

View File

@ -1,4 +1,5 @@
processor.mapper.generateEnable=true processor.mapper.generateEnable=true
processor.mapper.annotation=true
processor.tableDef.ignoreEntitySuffixes=Entity processor.tableDef.ignoreEntitySuffixes=Entity
#processor.allInTables.enable=true #processor.allInTables.enable=true
processor.mapper.baseClass=com.mybatisflex.test.mapper.MyBaseMapper processor.mapper.baseClass=com.mybatisflex.test.mapper.MyBaseMapper