欢迎光临
我们一直在努力

Spring Boot 项目在AI编程软件Kiro等的通用代码规范 Hook 示例

Spring Boot 项目在AI编程软件Kiro等的通用代码规范 Hook 示例

一、规范概述

以下规范适用于任何 Spring Boot + Java 项目,与具体业务无关,聚焦于命名规范、分层架构约定、代码风格三个维度。


二、通用规范清单

命名规范

类别规则示例
类名 大驼峰(PascalCase) UserService, OrderController
方法名 小驼峰(camelCase) getUserById, createOrder
变量名 小驼峰(camelCase) userName, orderList
常量 全大写 + 下划线 MAX_RETRY_COUNT, DEFAULT_PAGE_SIZE
包名 全小写,单词间用 . 分隔 com.example.user.service
数据库字段 下划线命名(snake_case) create_time, user_name
禁止拼音 不得使用拼音或拼音缩写命名 ❌ yonghu → ✅ user

分层架构命名约定

层类后缀示例
Controller Controller UserController
Service 接口 Service UserService
Service 实现 ServiceImpl UserServiceImpl
数据访问 Mapper 或 Repository UserMapper
数据传输对象 Dto UserQueryDto
视图对象 Vo UserDetailVo
持久化实体 Entity 或 Po UserEntity
配置类 Config RedisConfig
工具类 Utils 或 Helper DateUtils
枚举类 Enum OrderStatusEnum
异常类 Exception BusinessException

方法命名前缀约定

操作类型推荐前缀示例
查询单个 get / find getUserById
查询列表 list / query listByCondition
分页查询 page pageUsers
新增 create / add / save createUser
更新 update / modify updatePassword
删除 delete / remove deleteById
判断 is / has / can isExpired
转换 to / convert toDto, convertToVo
校验 validate / check validateParam

代码风格

规则说明
注释语言 类注释、方法注释使用中文
类注释 必须包含 @author 和功能描述
方法注释 公共方法必须有 Javadoc
魔法值 禁止直接使用魔法数字/字符串,必须定义为常量
返回值 Controller 统一使用包装类(如 Result<T>)
异常处理 使用全局异常处理器,禁止 Controller 中 try-catch
日志 使用 @Slf4j 注解,禁止 System.out.println
空判断 集合判空用 CollectionUtils.isEmpty(),字符串用 StringUtils.isBlank()

三、Kiro Hook 文件示例

文件路径:.kiro/hooks/springboot-code-standards.kiro.hook

{
"enabled": true,
"name": "Spring Boot Code Standards",
"version": "1.0.0",
"description": "Spring Boot 项目通用代码规范检查,在 AI 写入 Java 代码前自动审查命名、分层约定和代码风格。",
"when": {
"type": "preToolUse",
"toolTypes": ["write"]
},
"then": {
"type": "askAgent",
"prompt": "在写入 Java/Spring Boot 代码前,请逐项检查以下规范:\\n\\n【命名规范】\\n1. 类名使用大驼峰(PascalCase)\\n2. 方法名和变量名使用小驼峰(camelCase)\\n3. 常量使用全大写加下划线(如 MAX_RETRY_COUNT)\\n4. 包名全小写\\n5. 数据库相关字段使用 snake_case\\n6. 禁止使用拼音命名\\n\\n【分层命名约定】\\n7. Controller 层:XxxController\\n8. Service 层:接口 XxxService,实现类 XxxServiceImpl\\n9. 数据访问层:XxxMapper 或 XxxRepository\\n10. DTO/VO/Entity 后缀正确(Dto/Vo/Entity)\\n11. 配置类后缀 Config,工具类后缀 Utils\\n12. 枚举类后缀 Enum,异常类后缀 Exception\\n\\n【方法命名前缀】\\n13. 查询:get/find/list/query/page\\n14. 新增:create/add/save\\n15. 更新:update/modify\\n16. 删除:delete/remove\\n17. 判断:is/has/can\\n\\n【代码风格】\\n18. 注释使用中文,公共方法必须有 Javadoc\\n19. 禁止魔法值,必须定义常量\\n20. Controller 统一返回包装类型 Result<T>\\n21. 使用 @Slf4j 记录日志,禁止 System.out\\n22. 集合判空用 CollectionUtils,字符串判空用 StringUtils\\n23. 异常交由全局处理器,Controller 中不写 try-catch\\n\\n如发现不符合规范的地方,请修正后再写入。"
}
}


四、跨 AI 工具复用

同样的规则内容可以直接用于其他 AI 编程工具:

GitHub Copilot

文件路径:.github/copilot-instructions.md

# Spring Boot Coding Standards

## Naming
– Class: PascalCase (UserService, OrderController)
– Method/Variable: camelCase (getUserById, orderList)
– Constant: UPPER_SNAKE_CASE (MAX_RETRY_COUNT)
– Package: all lowercase (com.example.user.service)
– DB fields: snake_case (create_time)
– No pinyin naming allowed

## Layer Conventions
– Controller: XxxController
– Service interface: XxxService / impl: XxxServiceImpl
– Mapper: XxxMapper or XxxRepository
– DTO: XxxDto / VO: XxxVo / Entity: XxxEntity
– Config: XxxConfig / Utils: XxxUtils / Enum: XxxEnum

## Method Prefix
– Query: get/find/list/query/page
– Create: create/add/save
– Update: update/modify
– Delete: delete/remove
– Boolean: is/has/can

## Code Style
– Comments in Chinese, Javadoc for public methods
– No magic numbers/strings — use constants
– Controller returns Result<T>
– Use @Slf4j, no System.out.println
– Use CollectionUtils.isEmpty() / StringUtils.isBlank()
– Global exception handler, no try-catch in Controller

Cursor

文件路径:.cursorrules

内容与上面 Copilot 的 Markdown 相同即可,Cursor 会自动读取项目根目录的 .cursorrules 文件。


五、总结

维度内容
适用范围 任何 Spring Boot + Java 项目
与业务无关 仅约束命名、分层、风格,不涉及业务逻辑
主要作用 保证团队代码风格一致,减少 Code Review 中的低级问题
复用方式 规则内容一份维护,按格式输出到各 AI 工具的配置文件
赞(0)
未经允许不得转载:171主机测评 » Spring Boot 项目在AI编程软件Kiro等的通用代码规范 Hook 示例
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址