一、创建Controller模板
在src\test\resources\templates\下创建controller.java.ftl文件,内容如下:
package ${package.Controller};
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.common.http.RestResult;
import ${package.Entity}.${entity};
import ${package.Service}.${table.serviceName};
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
<#if restControllerStyle>
import org.springframework.web.bind.annotation.RestController;
<#else>
import org.springframework.stereotype.Controller;
</#if>
<#if superControllerClassPackage??>
import ${superControllerClassPackage};
</#if>
import javax.annotation.Resource;
/**
* <p>
* ${table.comment!} 前端控制器
* </p>
*
* @author ${author}
* @since ${date}
*/
<#if restControllerStyle>
@RestController
<#else>
@Controller
</#if>
@RequestMapping("<#if package.ModuleName?? && package.ModuleName != "">/${package.ModuleName}</#if>/<#if controllerMappingHyphenStyle>${controllerMappingHyphen}<#else>${table.entityPath}</#if>")
<#if kotlin>
class ${table.controllerName}<#if superControllerClass??> : ${superControllerClass}()</#if>
<#else>
<#if superControllerClass??>
public class ${table.controllerName} extends ${superControllerClass} {
<#else>
public class ${table.controllerName} {
</#if>
@Resource
private ${table.serviceName} ${table.serviceName?uncap_first};
@PostMapping("/save")
public RestResult<Long> save(${entity} ${entity?uncap_first}) {
${table.serviceName?uncap_first}.save(${entity?uncap_first});
return RestResult.getSuccessResult(${entity?uncap_first}.getId());
}
@PostMapping("/removeById")
public RestResult<Boolean> removeById(Long id) {
boolean success = ${table.serviceName?uncap_first}.removeById(id);
return RestResult.getSuccessResult(success);
}
@PostMapping("/updateById")
public RestResult<Boolean> updateById(${entity} ${entity?uncap_first}) {
boolean success = ${table.serviceName?uncap_first}.updateById(${entity?uncap_first});
return RestResult.getSuccessResult(success);
}
@PostMapping("/getById")
public RestResult<${entity}> getById(Long id) {
${entity} ${entity?uncap_first} = ${table.serviceName?uncap_first}.getById(id);
return RestResult.getSuccessResult(${entity?uncap_first});
}
@PostMapping("/page")
public RestResult<Page<${entity}>> page(Integer pageNum, Integer pageSize) {
Page<${entity}> page = ${table.serviceName?uncap_first}.page(new Page<>(pageNum, pageSize));
return RestResult.getSuccessResult(page);
}
}
</#if>
二、功能验证
运行com.example.demo.config.MybatisPlusGenerator#execute生成SystemLogController如下:
package com.example.demo.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.common.http.RestResult;
import com.example.demo.model.SystemLog;
import com.example.demo.service.SystemLogService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* <p>
* 系统日志表 前端控制器
* </p>
*
* @author chenzl
* @since 2023-10-10
*/
@RestController
@RequestMapping("/systemLog")
public class SystemLogController {
@Resource
private SystemLogService systemLogService;
@PostMapping("/save")
public RestResult<Long> save(SystemLog systemLog) {
systemLogService.save(systemLog);
return RestResult.getSuccessResult(systemLog.getId());
}
@PostMapping("/removeById")
public RestResult<Boolean> removeById(Long id) {
boolean success = systemLogService.removeById(id);
return RestResult.getSuccessResult(success);
}
@PostMapping("/updateById")
public RestResult<Boolean> updateById(SystemLog systemLog) {
boolean success = systemLogService.updateById(systemLog);
return RestResult.getSuccessResult(success);
}
@PostMapping("/getById")
public RestResult<SystemLog> getById(Long id) {
SystemLog systemLog = systemLogService.getById(id);
return RestResult.getSuccessResult(systemLog);
}
@PostMapping("/page")
public RestResult<Page<SystemLog>> page(Integer pageNum, Integer pageSize) {
Page<SystemLog> page = systemLogService.page(new Page<>(pageNum, pageSize));
return RestResult.getSuccessResult(page);
}
}
可以看到自动生成了基本的增删改查方法
三、项目地址
PS:可以通过tag下载本文对应的代码版本
四、结尾
自动生成Controller已完成,有问题可以联系chenzhenlindx@qq.com