目录

安装插件

​编辑创建springboot项目 

AI编程         

claude-3.5-sonnat大模型(cursor agent模式)

1、修改依赖版本

2、添加项目ai规则

3、实现用户管理的功能

4、mysql数据库连接采用druid连接池,并且给出最优设置的配置

6、对controller生成单元测试类

 deepseek-r1大模型(cursor normal模式)

1、修改依赖版本

2、添加项目ai规则

3、实现用户管理的功能

gpt-4o (cursor agent模式)

1、修改依赖版本

2、添加项目ai规则

3、实现用户管理的功能

通义灵码大模型(插件-AI程序员)

1、修改依赖版本

2、添加项目ai规则


安装插件


创建springboot项目 

在搜索框中输入 >Spring Initializr: Create a Maven Project

 选择版本

 选择开发语言

输入maven group 

 输入maven artifact

 选择打包类型

选择Java版本

 选择需要添加的依赖包

 选择项目存放的文件目录

 由于springboot的版本太高,需要把springboot版本调整到2.5.15   ,Java版本调整到1.8

此时我们用composer agent帮我们去更改版本

AI编程         

claude-3.5-sonnat大模型(cursor agent模式)

1、修改依赖版本

由于springboot的版本太高,需要把springboot版本调整到2.5.15   ,Java版本调整到1.8

2、添加项目ai规则

在当前项目根目录生成.cursorrules,根据最新的阿里Java开发规范去更新.cursorrulrs,.cursorrules 规范中类的注释,作者用git的用户名,时间为当前时间,.cursorrules 中新增按照最新的阿里规范,对目录结构层次及目录命名,文件命名进行约束,.cursorrules 中新增按照最新的阿里规范,对目录结构层次及目录命名,文件命名进行约束,.cursorrules 中新增按照最新的阿里规范,对数据库使用,操作的规范

.cursorrules文件内容为:

rules:
  - id: project-structure
    description: 确保项目结构符合阿里巴巴Java开发规范
    patterns:
      - pattern: "^(?!src/(main|test)/(java|resources)/)"
        message: "【强制】项目必须遵循 Maven 的目录结构规范"
      - pattern: "src/main/java/[^/]+/[^/]+/(?!api|common|config|constant|controller|entity|enums|exception|mapper|model|service|util|vo).*?/"
        message: "【强制】基础包名必须是:api、common、config、constant、controller、entity、enums、exception、mapper、model、service、util、vo"
      - pattern: "src/main/resources/(?!application.*\\.properties|application.*\\.yml|mapper|static|templates|config).*?/"
        message: "【强制】resources 目录下必须包含:配置文件、mapper、static、templates、config 等标准目录"

  - id: package-structure
    description: 确保包结构符合阿里巴巴Java开发规范
    patterns:
      - pattern: "src/main/java/[^/]+/[^/]+/api/(?!facade|dto|vo).*?/"
        message: "【强制】API 包必须包含:facade(接口)、dto(数据传输)、vo(视图对象)"
      - pattern: "src/main/java/[^/]+/[^/]+/service/(?!impl).*?/"
        message: "【强制】service 包必须有 impl 子包"
      - pattern: "src/main/java/[^/]+/[^/]+/model/(?!entity|dto|vo|param).*?/"
        message: "【强制】model 包必须包含:entity、dto、vo、param"
      - pattern: "src/main/java/[^/]+/[^/]+/common/(?!annotation|aspect|config|constant|enums|exception|util).*?/"
        message: "【强制】common 包必须包含:annotation、aspect、config、constant、enums、exception、util"

  - id: file-naming
    description: 确保文件命名符合阿里巴巴Java开发规范
    patterns:
      - pattern: "Controller\\.java$"
        message: "【强制】Controller 类必须以 Controller 结尾"
      - pattern: "Service\\.java$"
        message: "【强制】Service 接口必须以 Service 结尾"
      - pattern: "ServiceImpl\\.java$"
        message: "【强制】Service 实现类必须以 ServiceImpl 结尾"
      - pattern: "Mapper\\.java$"
        message: "【强制】Mapper 接口必须以 Mapper 结尾"
      - pattern: "Repository\\.java$"
        message: "【强制】Repository 接口必须以 Repository 结尾"
      - pattern: "(VO|DTO|DO|BO|Query|Param)\\.java$"
        message: "【强制】数据对象必须以 VO、DTO、DO、BO、Query、Param 结尾"
      - pattern: "Enum\\.java$"
        message: "【强制】枚举类必须以 Enum 结尾"
      - pattern: "Exception\\.java$"
        message: "【强制】异常类必须以 Exception 结尾"
      - pattern: "Util\\.java$"
        message: "【强制】工具类必须以 Util 结尾"
      - pattern: "Constant\\.java$"
        message: "【强制】常量类必须以 Constant 结尾"
      - pattern: "Config\\.java$"
        message: "【强制】配置类必须以 Config 结尾"
      - pattern: "Aspect\\.java$"
        message: "【强制】切面类必须以 Aspect 结尾"

  - id: class-annotation
    description: 确保类注释符合阿里巴巴Java开发规范
    patterns:
      - pattern: "class\\s+[A-Z][a-zA-Z0-9]*(?!.*?/\\*\\*[\\s\\S]*?@author\\s+yangcai[\\s\\S]*?@date\\s+2025-02-10\\s+14:38[\\s\\S]*?@version[\\s\\S]*?\\*/)"
        message: "【强制】类必须添加注释,包含 @author yangcai、@date 2025-02-10 14:38、@version 等信息"
      - pattern: "interface\\s+[A-Z][a-zA-Z0-9]*(?!.*?/\\*\\*[\\s\\S]*?@author\\s+yangcai[\\s\\S]*?@date\\s+2025-02-10\\s+14:38[\\s\\S]*?@version[\\s\\S]*?\\*/)"
        message: "【强制】接口必须添加注释,包含 @author yangcai、@date 2025-02-10 14:38、@version 等信息"
      - pattern: "enum\\s+[A-Z][a-zA-Z0-9]*(?!.*?/\\*\\*[\\s\\S]*?@author\\s+yangcai[\\s\\S]*?@date\\s+2025-02-10\\s+14:38[\\s\\S]*?\\*/)"
        message: "【强制】枚举必须添加注释,包含 @author yangcai、@date 2025-02-10 14:38 等信息"

  - id: database-naming
    description: 确保数据库命名符合阿里巴巴Java开发规范
    patterns:
      - pattern: "CREATE\\s+TABLE\\s+(?![a-z_][a-z0-9_]*\\s)"
        message: "【强制】表名必须使用小写字母或数字,禁止出现大写字母,单词间用下划线分隔"
      - pattern: "CREATE\\s+TABLE\\s+[a-z_][a-z0-9_]*\\s+\\([^)]*?(?![a-z_][a-z0-9_]*\\s+\\w+)"
        message: "【强制】表字段名必须使用小写字母或数字,禁止出现大写字母,单词间用下划线分隔"
      - pattern: "CREATE\\s+INDEX\\s+(?![a-z]+_idx\\b)"
        message: "【强制】普通索引名称必须以 idx_ 开头"
      - pattern: "CREATE\\s+UNIQUE\\s+INDEX\\s+(?![a-z]+_udx\\b)"
        message: "【强制】唯一索引必须以 udx_ 开头"

  - id: database-field
    description: 确保数据库字段设计符合阿里巴巴Java开发规范
    patterns:
      - pattern: "CREATE\\s+TABLE[^;]*?(?!.*?id\\s+\\w+.*?PRIMARY\\s+KEY)"
        message: "【强制】表必须有主键,命名为 id,类型为 bigint 或 unsigned bigint"
      - pattern: "CREATE\\s+TABLE[^;]*?(?!.*?(?:create_time|update_time)\\s+datetime)"
        message: "【强制】表必须有 create_time、update_time 字段,类型为 datetime"
      - pattern: "CREATE\\s+TABLE[^;]*?(?!.*?(?:is_deleted|deleted)\\s+(?:tinyint|bit))"
        message: "【强制】表必须有逻辑删除字段,推荐 is_deleted/deleted,类型为 tinyint 或 bit"
      - pattern: "CREATE\\s+TABLE[^;]*?\\bvarchar\\s*\\([^)]*?(?:32[1-9]|[4-9]\\d{2}|\\d{4,})"
        message: "【强制】varchar 长度不要超过 320,若需要请使用 text 类型"
      - pattern: "CREATE\\s+TABLE[^;]*?(?!.*?COMMENT\\s+'[^']+')"
        message: "【强制】所有表和字段必须添加注释"

  - id: sql-coding
    description: 确保SQL编写符合阿里巴巴Java开发规范
    patterns:
      - pattern: "SELECT\\s+\\*\\s+FROM"
        message: "【强制】禁止使用 SELECT * ,必须显式指定查询的字段"
      - pattern: "DELETE\\s+FROM[^;]*?(?!.*?WHERE)"
        message: "【强制】DELETE 语句必须带 WHERE 条件"
      - pattern: "UPDATE\\s+[^;]*?(?!.*?WHERE)"
        message: "【强制】UPDATE 语句必须带 WHERE 条件"
      - pattern: "IN\\s*\\([^)]*?(?:\\s*,\\s*){999,}"
        message: "【强制】IN 条件集合的元素数量不能超过 1000"
      - pattern: "INSERT\\s+INTO[^;]*?VALUES\\s*\\([^)]*?(?:\\s*,\\s*){999,}"
        message: "【强制】批量插入数据不能超过1000条"
      - pattern: "ORDER\\s+BY\\s+RAND\\(\\)"
        message: "【强制】禁止使用 ORDER BY RAND()"

  - id: mapper-sql
    description: 确保Mapper SQL编写符合阿里巴巴Java开发规范
    patterns:
      - pattern: "<select[^>]*>\\s*SELECT\\s+\\*\\s+FROM"
        message: "【强制】MyBatis 中禁止使用 SELECT *,必须显式指定查询的字段"
      - pattern: "<(select|update|delete)[^>]*>(?!.*?WHERE)"
        message: "【强制】WHERE 条件必须有且不能为空"
      - pattern: "<if\\s+test=\"[^\"]*?\\s+==\\s+null\""
        message: "【强制】MyBatis 判断相等使用 = 而不是 =="
      - pattern: "\\$\\{(?!orderBy)[^}]*\\}"
        message: "【强制】禁止使用 ${} 方式引用参数(orderBy 除外),防止 SQL 注入"
      - pattern: "<foreach[^>]*>\\s*[^<]*?\\$\\{"
        message: "【强制】foreach 循环中不允许使用 ${}"

  - id: database-index
    description: 确保数据库索引设计符合阿里巴巴Java开发规范
    patterns:
      - pattern: "CREATE\\s+TABLE[^;]*?\\bBLOB\\b[^;]*?INDEX"
        message: "【强制】BLOB 和 TEXT 字段不能建立索引"
      - pattern: "CREATE\\s+INDEX[^;]*?\\([^)]*?(?:\\s*,\\s*){5,}"
        message: "【强制】单个索引中的字段数不能超过5个"
      - pattern: "CREATE\\s+TABLE[^;]*?PRIMARY\\s+KEY[^;]*?(?:\\s*,\\s*){5,}"
        message: "【强制】主键索引字段数不能超过5个"
      - pattern: "ALTER\\s+TABLE[^;]*?ADD\\s+INDEX[^;]*?\\([^)]*?\\bdatetime\\b"
        message: "【强制】不建议在时间字段上建立索引"

  - id: transaction-convention
    description: 确保事务使用符合阿里巴巴Java开发规范
    patterns:
      - pattern: "@Transactional(?!\\s*\\([^)]*propagation)"
        message: "【强制】事务注解必须指定传播行为"
      - pattern: "@Transactional\\s*\\([^)]*?timeout\\s*=\\s*(?:[6-9]\\d{1,}|[1-9]\\d{2,})"
        message: "【强制】事务超时时间不能超过50秒"
      - pattern: "@Transactional(?!.*?rollbackFor)"
        message: "【强制】事务注解必须指定回滚异常类型"
      - pattern: "PlatformTransactionManager\\s+\\w+\\s*=[^;]*?DataSourceTransactionManager"
        message: "【推荐】使用 TransactionTemplate 而不是 TransactionManager" 
3、实现用户管理的功能

数据库使用mysql;用户认证,授权用saToken;接口在线文档使用swagger3,orm框架使用mybatis-plus,采用springboot-validation对controller中请求入参进行校验
实现用户管理模块
用户属性为用户id,用户账号,用户名,密码,企业名称,企业id , 部门名称,用户类型(0:普通用户,1:普通管理员 2:企业管理员 3:超级管理员),是否启用(0:未启用,1:启用),是否删除(0:未删除,1:删除),新增用户id,新增时间,更新用户id,更新时间。生成mysql创建表脚本
实现功能为:
1、用户列表查询,列表展示用户名称,用户账号,公司名称,部门名称,修改人,更新时间,状态,操作(修改用户信息,设置管理员,用户删除) 可以根据用户名,用户账号模糊查询,根据更新时间进行倒叙
2、用户是否启用,在用户列表中有个按钮,对用户进行进行启用,未启用操作
3、修改用户,对用户信息进行修改
4、删除用户,删除用户信息
5、用户注册,对用户信息进行新增

4、mysql数据库连接采用druid连接池,并且给出最优设置的配置

6、对controller生成单元测试类

生成单元测试类 

controller接口都测试成功

 deepseek-r1大模型(cursor normal模式)

 cursor-agent只支持Anthropic models or GPT-4o,则使用cursor-nomal模式

1、修改依赖版本

由于springboot的版本太高,需要把springboot版本调整到2.5.15   ,Java版本调整到1.8

2、添加项目ai规则

在当前项目根目录生成.cursorrules,根据最新的阿里Java开发规范去更新.cursorrulrs,.cursorrules 规范中类的注释,作者用git的用户名,时间为当前时间,.cursorrules 中新增按照最新的阿里规范,对目录结构层次及目录命名,文件命名进行约束,.cursorrules 中新增按照最新的阿里规范,对目录结构层次及目录命名,文件命名进行约束,.cursorrules 中新增按照最新的阿里规范,对数据库使用,操作的规范

.cursorrules文件内容为:

{
  "templates": {
    "java": {
      "class": {
        "header": [
          "/**",
          " * @author ${system:user.name}",
          " * @description ${class_doc}",
          " * @date ${current_date:yyyy-MM-dd}",
          " */"
        ]
      }
    }
  },
  "rules": {
    "directory-structure": {
      "description": "目录结构规范(基于阿里手册)",
      "constraints": [
        {
          "type": "package",
          "pattern": "com.cursor.deepseek.(controller|service|mapper|model|config|util)",
          "message": "必须按功能分层:controller/service/mapper分层清晰"
        },
        {
          "type": "package",
          "pattern": "^[a-z.]+$",
          "message": "包名全小写,使用单数形式"
        }
      ]
    },
    "naming-convention": {
      "description": "命名规范(基于阿里手册V1.7.0)",
      "constraints": [
        {
          "type": "class",
          "pattern": "^[A-Z][A-Za-z0-9]*$",
          "message": "类名使用UpperCamelCase风格"
        },
        {
          "type": "test-class",
          "pattern": "Test$",
          "message": "测试类命名以Test结尾"
        },
        {
          "type": "config-file",
          "pattern": "^[a-z-]+$",
          "message": "配置文件使用kebab-case命名"
        }
      ]
    },
    "database-rules": {
      "description": "数据库操作规范",
      "constraints": [
        {
          "type": "sql-table",
          "pattern": "^[a-z_]+$",
          "message": "表名全小写,使用下划线分隔"
        },
        {
          "type": "sql-index",
          "pattern": "^(idx|uk)_[a-z_]+$",
          "message": "索引命名:唯一uk_,普通idx_"
        },
        {
          "type": "sql-query",
          "maxJoins": 3,
          "message": "禁止超过3表JOIN查询"
        }
      ]
    },
    "code-style": {
      "transactions": {
        "annotation": "@Transactional",
        "serviceLayerOnly": true
      },
      "orm-mapping": {
        "fieldNaming": "underscore_to_camel_case"
      },
      "forbidden-operations": [
        "SELECT *",
        "DELETE_WITHOUT_WHERE"
      ]
    },
    "resource-layout": {
      "static-resources": "src/main/resources/static",
      "mybatis-mappers": "src/main/resources/mapper",
      "config-files": "src/main/resources/config"
    },
    "advanced-rules": {
      "model-classes": {
        "dto": "model/dto",
        "vo": "model/vo",
        "param": "model/param"
      },
      "exception-handling": {
        "globalHandler": "exception/GlobalExceptionHandler"
      }
    }
  }
} 
3、实现用户管理的功能

数据库使用mysql;用户认证,授权用saToken;接口在线文档使用swagger3,orm框架使用mybatis-plus,采用springboot-validation对controller中请求入参进行校验
实现用户管理模块
用户属性为用户id,用户账号,用户名,密码,企业名称,企业id , 部门名称,用户类型(0:普通用户,1:普通管理员 2:企业管理员 3:超级管理员),是否启用(0:未启用,1:启用),是否删除(0:未删除,1:删除),新增用户id,新增时间,更新用户id,更新时间。生成mysql创建表脚本
实现功能为:
1、用户列表查询,列表展示用户名称,用户账号,公司名称,部门名称,修改人,更新时间,状态,操作(修改用户信息,设置管理员,用户删除) 可以根据用户名,用户账号模糊查询,根据更新时间进行倒叙
2、用户是否启用,在用户列表中有个按钮,对用户进行进行启用,未启用操作
3、修改用户,对用户信息进行修改
4、删除用户,删除用户信息
5、用户注册,对用户信息进行新增

 

 生成的代码中有报错,而且有些类未创建,说明deepseek代码生成能力不如claude

gpt-4o (cursor agent模式)

1、修改依赖版本

由于springboot的版本太高,需要把springboot版本调整到2.5.15   ,Java版本调整到1.8

2、添加项目ai规则

在当前项目根目录生成.cursorrules,根据最新的阿里Java开发规范去更新.cursorrulrs,.cursorrules 规范中类的注释,作者用git的用户名,时间为当前时间,.cursorrules 中新增按照最新的阿里规范,对目录结构层次及目录命名,文件命名进行约束,.cursorrules 中新增按照最新的阿里规范,对目录结构层次及目录命名,文件命名进行约束,.cursorrules 中新增按照最新的阿里规范,对数据库使用,操作的规范

.cursorrules文件内容为:

# .cursorrules

# 类注释规范
# 作者: yangcai
# 创建时间: 2025-02-10

# 目录结构和命名规范
# 1. 目录结构应清晰,层次分明。
# 2. 目录命名应使用小写字母,单词之间用连字符连接。
# 3. 文件命名应使用驼峰命名法。

# 数据库使用和操作规范
# 1. 数据库表名应使用小写字母,单词之间用下划线连接。
# 2. 数据库字段名应使用小写字母,单词之间用下划线连接。
# 3. 禁止直接在代码中拼接SQL语句,使用预编译语句。 
3、实现用户管理的功能

数据库使用mysql;用户认证,授权用saToken;接口在线文档使用swagger3,orm框架使用mybatis-plus,采用springboot-validation对controller中请求入参进行校验
实现用户管理模块
用户属性为用户id,用户账号,用户名,密码,企业名称,企业id , 部门名称,用户类型(0:普通用户,1:普通管理员 2:企业管理员 3:超级管理员),是否启用(0:未启用,1:启用),是否删除(0:未删除,1:删除),新增用户id,新增时间,更新用户id,更新时间。生成mysql创建表脚本
实现功能为:
1、用户列表查询,列表展示用户名称,用户账号,公司名称,部门名称,修改人,更新时间,状态,操作(修改用户信息,设置管理员,用户删除) 可以根据用户名,用户账号模糊查询,根据更新时间进行倒叙
2、用户是否启用,在用户列表中有个按钮,对用户进行进行启用,未启用操作
3、修改用户,对用户信息进行修改
4、删除用户,删除用户信息
5、用户注册,对用户信息进行新增

 

发现脚本文件没有自动创建,实现类没有实现

另外生成的速度有点慢

通义灵码大模型(插件-AI程序员)

1、修改依赖版本

2、添加项目ai规则

在当前项目根目录生成.cursorrules,根据最新的阿里Java开发规范去更新.cursorrulrs,.cursorrules 规范中类的注释,作者用git的用户名,时间为当前时间,.cursorrules 中新增按照最新的阿里规范,对目录结构层次及目录命名,文件命名进行约束,.cursorrules 中新增按照最新的阿里规范,对目录结构层次及目录命名,文件命名进行约束,.cursorrules 中新增按照最新的阿里规范,对数据库使用,操作的规范

 3、实现用户管理的功能

数据库使用mysql;用户认证,授权用saToken;接口在线文档使用swagger3,orm框架使用mybatis-plus,采用springboot-validation对controller中请求入参进行校验
实现用户管理模块
用户属性为用户id,用户账号,用户名,密码,企业名称,企业id , 部门名称,用户类型(0:普通用户,1:普通管理员 2:企业管理员 3:超级管理员),是否启用(0:未启用,1:启用),是否删除(0:未删除,1:删除),新增用户id,新增时间,更新用户id,更新时间。生成mysql创建表脚本
实现功能为:
1、用户列表查询,列表展示用户名称,用户账号,公司名称,部门名称,修改人,更新时间,状态,操作(修改用户信息,设置管理员,用户删除) 可以根据用户名,用户账号模糊查询,根据更新时间进行倒叙
2、用户是否启用,在用户列表中有个按钮,对用户进行进行启用,未启用操作
3、修改用户,对用户信息进行修改
4、删除用户,删除用户信息
5、用户注册,对用户信息进行新增

出现两个问题: 

 没有添加import java.util.Date;导致文件报错

不会自动添加Lombok依赖,代码有报错,程序运行不起来

总结:

cursor agent中用claude大模型  能完美的根据需要需求编写代码,代码调整,没有编译错误,实现类能够生成出来,程序运行成功,接口可正常调用

cursor agent中用gpt大模型  能根据需要需求编写代码,代码调整,没有编译错误,具体的实现类没有生成,需要自己编写,而且生成过程中,有询问,而且回答之后才能走下一步,生成的过程响应比较慢,程序运行成功,接口不可正常调用

cursor normal中用deepseek r1大模型  能根据需要需求编写代码,代码调整,有编译错误,具体的实现类会生成,但部分类没有生成,需要自己编写,程序运行不成功

cursor 中通义千问大模型  能根据需要需求编写代码,代码调整,有编译错误,具体的实现类会生成,有些类的引用不会自动添加,有些依赖没有自动添加,需要自己编写,程序运行不成功

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐