关键在于将项目规范固化进项目根目录的.cursorrules文件,ai每次生成代码时自动读取并遵守:spring boot需统一返回result、service加@transactional、异常全抛出由全局处理器拦截;go项目则限定gin+gorm+zap栈、handler必须用*gin.context、日志用zap、错误调用customerror.new。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

让AI在Java或Go后端项目里写代码时不乱加Lombok、不手动处理异常、不绕过全局拦截器,关键不是反复提醒它,而是把项目规范固化进.cursorrules文件——这个文件一放,AI每次生成都自动读取,不再凭空猜测你的架构意图。
创建项目级规则文件
在项目根目录下新建一个名为.cursorrules的纯文本文件,不要加任何扩展名。这个文件必须放在最外层,和src、pom.xml或go.mod同级,否则AI根本找不到它。
【文件名必须是.cursorrules,不能是.cursorrules.md或.cursorrules.txt】
这一步操作起来很简单,直接在终端执行:touch .cursorrules即可。
写入Spring Boot核心约束
如果你用的是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语言(Golang)1.26.0版本提供 Go 官方 Windows amd64 MSI 安装包下载入口,版本号 1.26.0,可用于旧项目维护、兼容性测试和指定版本开发环境配置。
配置Go后端行为契约
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")。







