Codex 生成 Spring Boot 接口需先加载项目上下文,确保识别到 Spring Boot、MyBatis-Plus 和 RestResult 等规范;否则生成代码将违反团队约定,返工成本更高。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

用 Codex 生成 Spring Boot 业务接口,不是让它凭空造轮子,而是把已有的项目结构、实体类、Mapper 和规范作为上下文喂给它,让它按你团队的真实约束产出可直接 Review 合入的代码。这一步漏掉项目上下文,生成的 Controller 很可能 new 实例、硬编码 SQL、返回结构不统一,后续人工改写时间比手写还长。
确认 Codex 已接入项目上下文
打开终端,cd 进入你的 Spring Boot 项目根目录(必须含 pom.xml 和 src/),确保 Codex CLI 能读取整个工程结构。如果只在空文件夹里运行,它会当成新项目处理,无视你已有的 GlobalExceptionHandler、Result
执行 codex status,检查输出中是否包含 “Context: detected Java project with Spring Boot, MyBatis-Plus, Lombok” —— 没有这一行说明上下文未加载成功,后续所有生成都不可信。
【必须确保当前目录下存在 src/main/java/com/xxx/xxx/controller/ 目录,否则 Codex 可能默认生成到错误包路径】
让 Codex 生成标准分层接口代码
方法一:基于已有 Entity 和 Mapper 自动生成完整链路
在项目根目录执行命令:codex run "为 entity.Order 实体类生成标准 RESTful 接口,包括 Controller(使用 @RestController + @RequestMapping)、Service(含 @Transactional)、ServiceImpl、对应单元测试;要求参数校验用 @Valid,异常统一由 GlobalExceptionHandler 处理,返回类型为 RestResult<page>> 或 RestResult<order>"</order></page>
这一步 Codex 会自动扫描 Order.java 的字段、注释、Lombok 标签,推导出分页查询、单条查询、新增、更新、删除五个基础接口,并严格匹配你项目中已定义的 RestResult 泛型签名。如果它生成了 void 返回或 ResponseEntity,说明上下文没识别到你的统一响应类——立刻中止,先检查 src/main/java/com/xxx/common/result/RestResult.java 是否存在且可被反射访问。
方法二:仅补 Controller 层,复用现有 Service
通过 codex-reset-radar.pages.dev 监控 Codex 使用重置窗口。轮询 current.json,检测窗口开启/关闭、预测等级变化以及概率跳变。
如果你已有成熟 Service,只需加一层 Web 入口,就用更轻量的指令:codex run "为 com.xxx.service.OrderService 中的 listByStatus(String status) 方法生成对应的 GET /api/orders?status={status} 接口,Controller 类名为 OrderController,放在 com.xxx.controller 包下,参数用 @RequestParam 校验非空,返回 RestResult<list>>"</list>
注意:Codex 会尝试解析 OrderService 的方法签名,但不会执行字节码。若该方法在 interface 中声明,而实现类在另一个模块,它可能找不到具体逻辑——此时需手动在 prompt 末尾追加一句:“实现类路径为 com.xxx.service.impl.OrderServiceImpl”。
强制对齐团队规范的关键操作
第一步:在项目根目录创建 .codex/skills/springboot-api-generator/SKILL.md
第二步:粘贴以下内容并保存:
---
name: springboot-api-generator
description: 生成符合本项目规范的 API 分层代码
---
当用户要求生成接口时,必须遵守:
1. Controller 类名以 Controller 结尾,方法名用驼峰,路由路径小写+中划线(如 /api/order-items)
2. 所有响应必须封装进 RestResult,禁止裸返回 List 或 Object
3. 新增/更新接口必须有 @Valid + BindingResult 参数,校验失败时返回 400 及错误字段列表
4. Service 方法必须标注 @Transactional(读操作除外)
5. 单元测试必须覆盖正常流、参数校验失败、Service 抛异常三种场景
第三步:重新运行 codex run 指令,Codex 会自动加载该 Skill 并应用全部五条规则。没有这一步,它大概率生成无事务注解、无参数校验、返回类型混乱的代码。
第四步:检查生成的 Controller 文件头是否含 import com.xxx.common.result.RestResult; —— 如果导入的是 org.springframework.http.ResponseEntity,说明 Skill 未生效,退回第二步检查 SKILL.md 文件路径和 YAML frontmatter 格式是否正确。

















