GitHub周趋势2026W25 | Headroom 压缩 95% Token、NVIDIA 开源 AI Agent 安全扫描器、…
2026-07-28
2026-07-31 0
关键在于将项目规范固化进项目根目录的.cursorrules文件,AI每次生成代码时自动读取并遵守:Spring Boot需统一返回Result、Service加@Transactional、异常全抛出由全局处理器拦截;Go项目则限定Gin+GORM+Zap栈、Handler必须用*gin.Context、日志用zap、错误调用customError.New。

让AI在Java或Go后端项目里写代码时不乱加Lombok、不手动处理异常、不绕过全局拦截器,关键不是反复提醒它,而是把项目规范固化进.cursorrules文件——这个文件一放,AI每次生成都自动读取,不再凭空猜测你的架构意图。
在项目根目录下新建一个名为.cursorrules的纯文本文件,不要加任何扩展名。这个文件必须放在最外层,和src、pom.xml或go.mod同级,否则AI根本找不到它。
【文件名必须是.cursorrules,不能是.cursorrules.md或.cursorrules.txt】
这一步操作起来很简单,直接在终端执行:touch .cursorrules即可。
如果你用的是Spring Boot,下面这段规则可以直接复制粘贴进去,它强制AI遵守你项目的实际分层逻辑:
你是一个Java后端开发专家,精通SpringBoot3.x。
项目约束:
所有Controller返回Result
Service层方法必须标注@Transactional,禁止用SqlSession手动提交
异常全部throw出去,由GlobalExceptionHandler统一拦截处理
数据库逻辑删除字段必须用@TableLogic注解,严禁物理DELETE
RESTful路由严格使用名词复数形式:/users、/orders
数据库字段名用snake_case,Java实体属性用camelCase
禁止在Controller里捕获业务异常并return null或new HashMap()
注意:最后一条“禁止在Controller里捕获业务异常”是关键防线,不写这条,AI大概率会自作主张try-catch再return new Result(),破坏你已有的全局异常流。
Go项目不需要Spring生态那套,但更需要明确边界。按以下三步写:
第一步:声明AI角色定位
你是一个专注Go微服务的工程师,熟悉Gin+GORM+Zap技术栈。
第二步:定义不可逾越的红线
所有HTTP Handler函数必须接收*gin.Context参数,禁止用net/http原生Handler
数据库操作必须走GORM实例,禁止直接调用database/sql
日志输出必须用zap.Sugar().Info/Error,禁止fmt.Println或log.Printf
第三步:指定结构体字段映射规则
JSON响应字段用json:"user_id"标签,对应数据库列user_id,Go结构体字段命名为UserID
所有错误返回必须调用customError.New("xxx"),该函数已在internal/error包中定义
【第三步中的customError.New必须真实存在,否则AI会虚构函数导致编译失败】
打开Cursor设置 → Editor → AI → 勾选Enable Rules Engine,然后重启编辑器。
验证是否生效:在任意Controller里输入“// 生成用户查询接口”,看AI返回的代码是否自动包裹Result.success(...)、是否跳过try-catch、是否用了@GetMapping("/users/{id}")而不是@GetMapping("/user")。