OpenSpec和Github Copilot 实践SDD开发模式-3
本文介绍在安装和初始化 OpenSpec 后的使用方法。

本文将通过一个完整的实战示例,演示如何使用 OpenSpec 规范驱动开发框架,配合 GitHub Copilot,从零开始创建一个基于 Spring Boot、MySQL、MyBatis、JDK 21 的后端 API 接口——用户管理模块(包含增删改查功能)。
一、OpenSpec 工作流:创建用户 API
阶段一:创建变更提案
前面已经完成了。
阶段二:实施开发
提案确认无误后,在 Copilot Chat 中输入:
/opsx-apply add-user-management-api

apply 过程中,会生成大量的代码,如下所示:

最后,会显示实现的任务,新增和更新的管家文件等等。

二、了解opsx:apply 过程
/opsx:apply add-user-management-api 这次主要完成了以下事项:
1. 变更识别与状态读取
确认使用变更 add-user-management-api。
读取 schema 与 apply 指令,识别为 spec-driven,总任务 17 个。
2. 上下文加载
按 apply 指令读取了 proposal、design、specs、tasks 四类上下文文件,作为实现依据。
3. 核心实现落地(任务 1.x-4.x)
完成数据库脚本与唯一索引:schema.sql

完成用户领域对象与请求/响应模型(含扩展字段):
UserEntity.java
CreateUserRequest.java
UpdateUserRequest.java
PatchUserRequest.java
UserResponse.java
完成 Mapper 接口与 XML SQL(增删改查、分页、唯一冲突检查):
UserMapper.java
UserMapper.xml
完成服务层(IUserService + UserServiceImpl):
IUserService.java
UserServiceImpl.java
完成控制层六个 REST 端点:
UserController.java
完成统一响应、错误码、业务异常与全局异常处理:
Result.java
ErrorCode.java
BusinessException.java
GlobalExceptionHandler.java
4. 工程配置调整
增加必要依赖(validation、mybatis、db 驱动、测试依赖):pom.xml
增加 datasource 与 mybatis 配置:application.properties
增加 @MapperScan:OpenspecDemoApplication.java
补充 MyBatis 显式配置(解决 SqlSessionFactory 注入问题):MyBatisConfig.java
5. 测试与联调(任务 5.1-5.3)
将原始 contextLoads 改为 CRUD/异常/分页契约集成测试:OpenspecDemoApplicationTests.java
处理并修复过程中出现的问题:
JDK 版本不匹配(改为 JDK 21 运行)
MyBatis SqlSessionFactory 未注入(新增配置类)
phone 正则转义错误(修正 DTO 校验表达式)
6. 文档与任务收尾(任务 5.4)
更新接口文档与示例:HELP.md
将 tasks 17 项全部打勾:tasks.md
7. 最终状态
openspec instructions apply --change "add-user-management-api" --json 显示:17/17 完成,state=all_done。
该变更已达到可归档状态。
热点资讯
- Perseus将开发欧洲首款人工智能电动汽车
- 超千万网友围观, 人民日报77年首播游戏
- 湖人猛兽崛起: 阵容高度与强悍的双塔组合
- 温玉成晚年为一件事拜访陈锡联, 陈老摆摆手: 我退下来了,
- 《餐饮创业生死局:从选址到爆品,拆解开店的7个黄金法则》
- 点评2025最厉害最正规靠谱的情感咨询机构有哪些
- 四大生肖福运来袭, 财源广进, 事业腾飞, 月月惊喜不断
- 巴特勒投资足总杯冠军水晶宫 能像詹杜二人那样成功吗?
- OpenSpec和Github Copilot 实践SDD开
- 奇门门迫的具体含义
