项目介绍

使用SpringBoot+MybaitsPlus+Cola(整洁面向对象分层架构)4.0重构订单功能

项目地址

Gitee:https://gitee.com/charles_ruan/smile-cola

Github:https://github.com/charles0719/smile-cola

项目核心API

  • 新增

POST http://localhost:8080/order/add

{"orderInfo": "订单1号1112","orderNo": "111211","description": "我是一个订单"}
  • 修改

POST http://localhost:8080/order/edit

{"id": "1","orderInfo": "订单1号1112","orderNo": "111211","description": "我是一个订单"}
  • 访问详情

GET http://localhost:8080/order/1

  • 分页查询

POST http://localhost:8080/order/page

{"pageSize": 10,"pageIndex": 1}

Cola架构介绍

核心组件

交互过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UEXDAnov-1684299282884)(assets/README/cola-交互.png)]

COLA 规范

规范用途解释
xxxCOClient Object客户对象,用于传输数据,等同于DTO
xxxCmdClient RequestCmd代表Command,表示一个写请求
xxxQueryClient RequestQuery,表示一个读请求
xxxCmdExeCommand Executor命令模式,每一个写请求对应一个执行器
xxxQueryExeQuery Executor命令模式,每一个读请求对应一个执行器
xxxVOValue Object值对象
xxxEntityEntity领域实体
xxxDOData Object数据对象,用于持久化
xxxInterceptorCommand Interceptor拦截器,用于处理切面逻辑
IxxxServiceAPI ServicexxxServiceI 不太习惯,就把 I 放在前边吧
xxxDomainServiceDomain Service需要多个领域对象协作时,使用DomainService
xxxValidatorValidator校验器,用于校验的类
xxxAssemblerAssembler组装器,DTO Entity,用于Application层
xxxConvertorConvertor转化器,Entity DO,用于Infrastructure层

模块规范

使用COLA

COLA 开源地址: https://github.com/alibaba/COLA

安装 cola archetype
下载cola-archetypes下的源码到本地,然后本地运行mvn install安装。

安装 cola components
下载cola-components下的源码到本地,然后本地运行mvn install安装。

创建应用

mvn archetype:generate-DgroupId=com.charles -DartifactId=smile -Dversion=1.0.0-SNAPSHOT -Dpackage=com.charles.smile -DarchetypeArtifactId=cola-framework-archetype-web -DarchetypeGroupId=com.alibaba.cola -DarchetypeVersion=4.0.0 -DarchetypeCatalog=internal

参考

  • https://github.com/alibaba/COLA
  • https://github.com/AmosWang0626/think-cola
  • https://gitee.com/j3code/lucky-draw-v1
  • 复杂度应对之道 – COLA应用架构
  • COLA 4.0:应用架构的最佳实践