mybatisplus 代码生成器自定义模板
@SpringBootTest
class StudyPlusApplicationTests {
@Test
void contextLoads() {
String url = "jdbc:mysql://localhost:3306/ry-saas?serverTimezone=GMT%2B8";
String username = "root";
String password = "password ";
FastAutoGenerator.create(url, username, password)
.globalConfig(builder -> builder
.author("hujiazhen")
.outputDir(Paths.get(System.getProperty("user.dir")) + "/src/main/java")
.commentDate("yyyy-MM-dd")
)
.packageConfig(builder -> builder
.parent("com.example.studyplus.web")
.entity("entity")
.mapper("mapper")
.service("service")
.serviceImpl("service.impl")
.xml("mapper.xml")
)
.strategyConfig(builder -> builder.addInclude("t_saas")
.addTablePrefix("t_")
.entityBuilder()
.enableLombok()
.controllerBuilder()
.template("Controller.java.vm")
)
.templateEngine(new VelocityTemplateEngine())
.execute();
}
}
Controller.java.vm 模板文件

package ${package.Controller};
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.security.access.prepost.PreAuthorize;
import javax.annotation.Resource;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import ${package.Service}.${table.serviceName};
import ${package.Entity}.${entity};
#set($service = $entity.toLowerCase())
#set($getId = "get"+$entity + "Id")
#set($swagger = $entity.toUpperCase())
@RestController
@Api(tags = {"xx模块"})
@RequestMapping("/${service}")
public class ${table.controllerName} {
@Resource
${table.serviceName} ${service}Service;
@PreAuthorize("hasAuthority('system:${service}:list')")
@ApiOperation(value = "全部列表")
@GetMapping("/list")
public Result list(){
List list= ${service}Service.list();
return Result.success(list);
}
}
依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.9</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.9</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.xlsx</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.properties</include>
<include>**/*.vm</include>
<include>**/*.xml</include>
<include>**/*.xlsx</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>