项目介绍
使用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 规范
规范 |
用途 |
解释 |
xxxCO |
Client Object |
客户对象,用于传输数据,等同于DTO |
xxxCmd |
Client Request |
Cmd代表Command,表示一个写请求 |
xxxQuery |
Client Request |
Query,表示一个读请求 |
xxxCmdExe |
Command Executor |
命令模式,每一个写请求对应一个执行器 |
xxxQueryExe |
Query Executor |
命令模式,每一个读请求对应一个执行器 |
xxxVO |
Value Object |
值对象 |
xxxEntity |
Entity |
领域实体 |
xxxDO |
Data Object |
数据对象,用于持久化 |
xxxInterceptor |
Command Interceptor |
拦截器,用于处理切面逻辑 |
IxxxService |
API Service |
xxxServiceI 不太习惯,就把 I 放在前边吧 |
xxxDomainService |
Domain Service |
需要多个领域对象协作时,使用DomainService |
xxxValidator |
Validator |
校验器,用于校验的类 |
xxxAssembler |
Assembler |
组装器,DTO <—> Entity,用于Application层 |
xxxConvertor |
Convertor |
转化器,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
参考