Skip to content

Controller 模板

占位符说明

占位符说明示例
{basePackage}项目基础包路径cn.szhn.poc.service
{module}业务模块名称(小驼峰)demostu, teacher
{Xxx}业务实体名称(大驼峰)DemoStu, Teacher
{xxx}业务实体名称(小驼峰)demoStu, teacher
{业务名称}业务中文描述学生, 教师
{XXX}业务实体名称(全大写)DEMOSTU, TEACHER
{作者名}代码作者彭业庆
{yyyy-MM-dd}创建日期2026-05-13

模板代码

java
package {basePackage}.business.{module}.controller;

import {basePackage}.business.{module}.manager.{Xxx}Manager;
import {basePackage}.business.{module}.model.vo.{Xxx}VO;
import {basePackage}.business.{module}.model.dto.{Xxx}PageDTO;
import {basePackage}.business.{module}.model.vo.{Xxx}QueryVO;
import {basePackage}.constants.RestPrefixConstant;
import cn.com.digitalhainan.common.common.dto.PaginationInfoResDTO;
import cn.com.digitalhainan.common.core.response.BaseResponse;

/**
 * <p>{业务名称}管理控制器</p>
 *
 * @author {作者名}
 * @since {yyyy-MM-dd}
 */
@Tag(name = "{业务名称}管理")
@RestController
@RequestMapping(RestPrefixConstant.{XXX}_REST_PREFIX)
public class {Xxx}Controller {

    @Resource
    private {Xxx}Manager {xxx}Manager;

    @PostMapping("/page")
    @Operation(summary = "分页查询{业务名称}列表")
    public BaseResponse<PaginationInfoResDTO<{Xxx}PageDTO>, Object> queryPage(@RequestBody @Valid {Xxx}QueryVO vo) {
        return BaseResponse.success({xxx}Manager.queryPage(vo));
    }

    @PostMapping("/add")
    @Operation(summary = "新增{业务名称}")
    public BaseResponse<String, Object> add(@RequestBody @Valid {Xxx}VO vo) {
        return BaseResponse.success({xxx}Manager.add(vo));
    }

    @PostMapping("/update")
    @Operation(summary = "修改{业务名称}")
    public BaseResponse<Object, Object> update(@RequestBody @Valid {Xxx}VO vo) {
        {xxx}Manager.updateById(vo);
        return BaseResponse.success(null);
    }

    @GetMapping("/detail/{id}")
    @Operation(summary = "根据id查询学生详情")
    public BaseResponse<{Xxx}DTO, Object> getDetail(@PathVariable String id) {
        return BaseResponse.success({xxx}Manager.queryDetailById(id));
    }

    @PostMapping("/delete/{id}")
    @Operation(summary = "删除{业务名称}")
    public BaseResponse<Object, Object> delete(@PathVariable String id) {
        {xxx}Manager.deleteById(id);
        return BaseResponse.success(null);
    }
}

关键规约

规约项要求
HTTP 方法限制仅允许使用 @GetMapping@PostMapping,禁止使用 @PutMapping@DeleteMapping@PatchMapping 等其他 HTTP 方法
包路径使用 {basePackage} 占位符,由生成器根据实际项目替换
路由前缀通过 RestPrefixConstant.{XXX}_REST_PREFIX 配置,必须以 /api 开头
返参格式统一用 BaseResponse<T, Object> 包裹
参数校验入参必须加 @Valid
分层调用仅调用 Manager 层,禁止直接调用 Service 或 Mapper
入参/返参入参使用 VO,返参使用 DTO
文档注释所有类必须添加 @author@since

Power By 数字海南