mybatisplus代码生成模板
时间: 2025-05-30 08:03:37 浏览: 11
<think>好的,用户想了解MyBatis-Plus代码生成器的模板自定义配置和示例。我需要结合提供的引用内容来回答。首先,根据引用[1],示例配置中展示了如何通过TemplateConfig设置不生成XML文件,并指定Controller、Entity和Mapper的模板路径。用户可能需要知道如何调整这些模板路径。
然后引用[2]提到自定义模板使用的是Velocity引擎,需要注意注释格式的问题。这里需要告诉用户模板引擎的选择及语法注意事项。同时,InjectionConfig中的customMap和customFile方法可以用来添加自定义变量或文件,这可能是用户需要的扩展点。
引用[3]概述了集成代码生成器的基本步骤,可能需要提到配置类中的模板设置部分。而引用[4]则强调可以通过注释清晰的代码进行自定义配置,用户可能需要具体的配置示例。
用户的问题集中在模板的示例和自定义配置上,所以需要分点说明配置项,比如禁用生成某些文件、指定模板路径、使用自定义变量和添加新模板。同时,提供示例代码和注意事项,如模板语法和路径问题,这样用户能更清楚如何操作。最后,生成的相关问题要覆盖模板引擎、配置参数、最佳实践等,帮助用户进一步学习。</think>以下是与MyBatis Plus代码生成器模板配置相关的详细说明及示例:
### 一、模板配置核心参数
1. **基础模板路径设置**
通过`TemplateConfig`类禁用不需要生成的模板,并指定自定义模板路径:
```java
TemplateConfig templateConfig = new TemplateConfig()
.setXml(null) // 禁用XML生成
.setController("/templates/my-controller.java.vm") // 控制器模板
.setEntity("/templates/entity.java.vm") // 实体类模板
.setMapper("/templates/mapper.java.vm"); // Mapper接口模板
```
2. **自定义变量注入**
使用`InjectionConfig`添加模板变量,引用[2]中提到的`customMap`方法:
```java
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
Map<String, Object> map = new HashMap<>();
map.put("author", "YourName");
this.setMap(map);
}
};
```
### 二、模板文件规范
1. **Velocity语法要求**
- 变量格式:`$!{package.Entity}`(实体类包路径)
- 条件判断:`#if(${hasLombok})`(需顶格书写)
- 注释规范:`## 单行注释`必须顶格[^2]
2. **典型模板结构示例**
(实体类模板`entity.java.vm`节选):
```velocity
package ${package.Entity};
#if(${entityLombokModel})
import lombok.Data;
#end
@Data // Lombok注解
public class ${entity} {
#foreach($field in ${table.fields})
private ${field.propertyType} ${field.propertyName};
#end
}
```
### 三、多模板生成配置
通过`customFile`方法添加非标准模板(引用[2][4]):
```java
// 生成DTO对象
cfg.setCustomFile(Collections.singletonMap(
"DTO.java.vm", // 模板文件名
"/templates/dto.java.vm" // 模板路径
));
// 生成API文档
cfg.setCustomFile(new HashMap<String, String>(){{
put("ApiDoc.md", "/templates/api-doc.vm");
}});
```
### 四、配置文件示例
完整配置类参考(引用[3][4]):
```java
AutoGenerator generator = new AutoGenerator()
.setDataSource(dataSourceConfig)
.setPackageInfo(
new PackageConfig()
.setParent("com.example")
.setModuleName("system")
)
.setTemplate(templateConfig)
.setCfg(cfg);
```
阅读全文
相关推荐


















