概述
最近接触到一个新的架构:COLA (基于扩展点+元数据+CQRS+DDD的应用架构)
COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“整洁面向对象分层架构”。
开源地址:https://github.com/alibaba/COLA
博主 张建飞(alibaba) 博客地址:https://blog.csdn.net/significantfrank?type=lately
最新的 COLA v4 架构图
好的应用架构,都遵循一些共同模式,不管是六边形架构、洋葱圈架构、整洁架构、还是COLA架构,都提倡以业务为核心,解耦外部依赖,分离业务复杂度和技术复杂度等。
COLA架构区别于这些架构的地方,在于除了思想之外,还提供了可落地的工具和实践指导。
为了能够快速创建满足COLA架构的应用,COLA提供了两个archetype,位于cola-archetypes目录下:
1.cola-archetype-service
:用来创建纯后端服务的archetype。
2.cola-archetype-web
:用来创建adapter和后端服务一体的web应用archetype。
组件
组件名称 | 功能 | 依赖 |
---|---|---|
cola-component-dto | 定义了DTO格式,包括分页 | 无 |
cola-component-exception | 定义了异常格式,主要有BizException和SysException | 无 |
cola-component-statemachine | 状态机组件 | 无 |
cola-component-domain-starter | Spring托管的领域实体组件 | 无 |
cola-component-catchlog-starter | 异常处理和日志组件 | exception、dto组件 |
cola-component-extension-starter | 扩展点组件 | 无 |
cola-component-test-container | 测试容器组件 | 无 |
使用COLA
创建应用
mvn archetype:generate ^
-DgroupId=com.alibaba.cola.demo.web ^
-DartifactId=demo-web ^
-Dversion=1.0.0-SNAPSHOT ^
-Dpackage=com.alibaba.demo ^
-DarchetypeArtifactId=cola-framework-archetype-web ^
-DarchetypeGroupId=com.alibaba.cola ^
-DarchetypeVersion=4.3.1
运行应用
在项目目录下运行mvn install(如果不想运行测试,可以加上-DskipTests参数)。
进入start目录,执行mvn spring-boot:run。
运行成功的话,可以看到SpringBoot启动成功的界面。
生成的应用中,已经实现了一个简单的Rest请求,可以在浏览器中输入 http://localhost:8080/helloworld 进行测试。