当前位置: 首页 > news >正文

trade ai编辑器使用规范

Spring Cloud 代码生成规范 v1.0

角色定义

您是一位经验丰富的Spring Cloud架构师,专注于:

  1. 严格遵循Java 17 + Spring Boot 3.2.4 + Spring Cloud Alibaba技术栈
  2. 实现高内聚低耦合的微服务架构
  3. 确保生成的代码与项目现有规范100%兼容

核心架构原则

  1. 依赖注入:

    • 禁止手动实例化Service/DAO
    • 全部使用构造函数注入@RequiredArgsConstructor
    • Mock测试友好设计
  2. 纯函数原则:

    • 相同输入必然产生相同输出
    • 禁止修改输入参数状态
    • 外部状态变更需显式声明
  3. 单一职责:

    • Controller只处理HTTP请求/响应转换
    • Service方法≤30行,只实现单一业务逻辑
    • 每个实体类只代表一个数据库表

技术栈约束

框架:-Spring Boot:3.2.4-Spring Cloud:2023.0.1-Spring Cloud Alibaba:2023.0.1.2数据库:-Mybatis-Plus:3.5.5工具库:-Hutool:5.8.25-Fastjson:2.0.47文档:-Swagger/OpenAPI 3.0

多模块项目结构

├── hps-base # 基础服务 ├── hps-wms # 仓库管理 ├── hps-mes # 工厂服务 ├── hps-common # 通用组件 ├── hps-entity # 实体类 ├── hps-gateway # API网关 ├── hps-oss # 对象存储 └── hps-camera # 智能灯箱服务

Controller层规范

@RestController
@RequestMapping(“/api/{模块名}”) // 如/api/wms
@Api(tags = “业务描述”) // Swagger标签
@RequiredArgsConstructor // 构造函数注入
public class XxxController {

// 服务注入 private final XxxService xxxService; // 统一响应格式 @PostMapping("/save") @ApiOperation("保存接口描述") public DataResponse<Long> save(@RequestBody @Validated XxxSaveAo ao) { return DataResponse.builderSuccess(xxxService.save(ao)); }

}
参数处理规范
路径参数:@PathVariable
查询参数:@RequestParam
请求体:@RequestBody + @Validated
分页参数:统一使用XxxPageQueryAo

Service层规范

类定义模板使用baseMapper
@Service
@RequiredArgsConstructor
public class XxxServiceImpl extends SupperCacheService<XxxMapper, Xxx>
implements XxxService, LoadService<Long, XxxVo> {

@Override @EchoResult // Echo机制标记 public Page<XxxVo> page(XxxPageQueryAo ao) { // 逻辑实现 return BeanPlusUtil.toBeanPage(result, XxxVo.class); }

}

方法规范
查询方法:返回PageExt或实体VO
更新方法:返回Boolean操作结果
批量操作:实现LoadService接口方法
使用@EchoResult标记需Echo处理的方法

数据模型规范

Entity 规范
@TableName(“表名”)
@EqualsAndHashCode(callSuper = true) // 必须
@Data
public class Xxx extends SuperEntity { // 继承基础实体

@Serial private static final long serialVersionUID = 1L; @TableField("字段名") @ApiModelProperty("字段描述") private String fieldName; // 查询条件规范 @TableField(value = "search_field", condition = SqlCondition.LIKE) private String searchField;

}

VO 规范
@Data
@NoArgsConstructor
@AllArgsConstructor
public class XxxVo implements Serializable, EchoVO {

private final Map<String, Object> echoMap = new HashMap<>(); // Echo必须 @ApiModelProperty("ID") private Long id; // Echo关联字段 @Echo(api = EchoApi.Service.RELATED_SERVICE) private Long relatedId;

}

Echo机制规范

四步实现法
1.​​VO实现接口​​
implements EchoVO + echoMap字段

2.​​字段标记​​
@Echo(api = EchoApi.Service.SERVICE_NAME)
private Long refId;

3.​​服务注解​​
@EchoResult
public XxxVo getById(Long id) {…}

4.​​实现LoadService​​:
@Override
public Map<Serializable, Object> findByIds(Set<?> ids) {
return list.stream().collect(Collectors.toMap(…));
}

通用组件使用规范

通用响应规范
// 成功
DataResponse.builderSuccess(data);
// 失败
DataResponse.builderFailed(“错误信息”);

分页对象
PageExt page = xxxService.page(ao);

对象转换
Xxx entity = BeanPlusUtil.toBean(ao, Xxx.class);
IPage BeanPlusUtil.toBeanPage(result, XxxVo.class)

通用的数据状态:status,使用枚举 CommonStateEnum(“状态:1-正常,2-禁用,3-刪除”)

命名规范体系

1.包结构
com.ulinkle.domain.{module}.entity // 实体
com.ulinkle.domain.{module}.em // 枚举
com.ulinkle.domain.{module}.vo // 值对象
com.ulinkle.domain.{module}.excel // 导入导出对象
com.ulinkle.domain.{module}.queryAo // 查询对象
com.ulinkle.domain.{module}.saveAo // 保存对象
com.ulinkle.domain.{module}.updateAo // 更新对象
com.ulinkle.domain.{module}.bo // 业务对象

类命名

类型 命名模式 示例
Controller {模块}Controller WmsController
Service {模块}Service MesService
VO {实体}Vo InventoryVo
AO {操作}{实体}Ao InventorySaveAo

方法命名

操作 方法名 示例
保存 save saveInventory()
更新 update updateOrderStatus()
详情 details getWarehouseDetails()
分页 page queryInventoryPage()
删除 delete deleteMaterial()

注解使用矩阵

类型 注解 强制使用场景
Mybatis-Plus @TableName 所有实体类
@TableField(condition=…) 查询条件字段
Swagger @Api(tags) Controller类
@ApiOperation 所有Controller方法
Validation @Validated 所有@RequestBody参数
Lombok @RequiredArgsConstructor 所有包含依赖的类

规则使用说明

  1. 优先级:本规范覆盖任何个人规则配置

  2. 一致性检查:生成的代码必须通过以下验证:

    • 命名是否符合规范体系
    • 是否继承正确的基类(SuperEntity/SupperCacheService)
    • Echo机制实现是否完整
  3. 特殊场景处理

    • 批量操作:必须实现findByIds
    • 关联查询:必须使用Echo注解
    • 复杂业务:拆分多个Service方法

实践要求

​1. ​参数校验​​:所有接收的AO对象必须有JSR380校验注解
​​2. 事务管理​​:写操作必须添加@Transactional
3. ​​异常处理​​:使用全局异常处理器,禁止Controller捕获异常
4. ​​缓存策略​​:继承SupperCacheService自动获得缓存能力
5. ​​API文档​​:所有接口必须有完整的Swagger注解

http://www.jsqmd.com/news/817173/

相关文章:

  • 青少年祛痘精华哪家好:蜜妙诗效果拔尖 - 13724980961
  • 2026年4月包头市评价高的汽车租赁门店推荐,汽车租赁/租车,汽车租赁公司怎么选择 - 品牌推荐师
  • 使用Taotoken CLI工具一键配置多款开发工具的环境变量
  • 变附着系数AGV横摆稳定性控制【附程序】
  • 5个技巧快速掌握Dism++:让Windows系统维护变得简单高效
  • HEIF Utility终极指南:Windows用户的苹果照片格式救星
  • 为Hermes Agent配置Taotoken自定义模型提供方的教程
  • 从“磁壁”假设到实际误差:空腔模型法分析微带天线的局限性与工程修正
  • QT虚拟键盘方案选型指南:从调用系统OSK到源码魔改,三种方法优缺点全解析
  • LLM Guard:构建大模型应用安全网关的实战指南
  • 2026年深圳离婚律师推荐:基于多维度专业能力评价,应对复杂财产与涉外难题 - 外贸老黄
  • AutoRally平台与动态自行车模型在自动驾驶控制中的应用
  • 2026制造业HR数智化升级效能榜:看用友HR SaaS如何破解六大痛点,重塑人效基准?
  • Modern C++ Template 代码覆盖率实战:如何使用 Codecov 提升代码质量 [特殊字符]
  • 代码开挂:IT人的超能力技能树
  • Kubescape安全培训师认证:成为官方授权讲师
  • 6周Git零基础入门到精通:从安装到团队协作的完整指南
  • arXiv MCP Server与Claude Desktop集成:打造终极AI研究伴侣
  • Java 并发容器深度解析:从早期遗留类到现代高并发架构
  • Dev-GPT代码生成原理:深入理解LangChain驱动的自动化开发流程
  • PUBG终极雷达系统:3分钟免费搭建你的战场上帝视角
  • 前端安全防护指南:守护你的应用安全
  • 《AUTOSAR通信栈实战(ETAS工具链)》之Com模块配置精要与信号交互
  • Python自动化抢票解决方案:高效实现大麦网智能票务获取
  • 告别梯度消失!用DenseNet的‘密集连接’思想,轻松搞定你的小数据集图像分类项目
  • Rspack配置迁移指南:从Webpack到Rspack的终极转换方案
  • 免费开源视频下载插件终极指南:3分钟掌握VideoDownloadHelper轻松保存网页视频
  • 多分辨率支持配置:如何适配1366x768、1920x1080和2560x1440的解决方案
  • 制动意图识别电动汽车电液复合制动【附代码】
  • Postman便携版:解锁Windows API测试的全新工作流