🥤 COLA 4.0
COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“整�?�?��?�对象分层架构�?。 目�?COLA已�?�?�展到COLA 4.0。
想了解更多COLA信�?�,请关注微信公众�?�:
想了解更多COLA背�?�的故事,请支�?我的新书《程�?员的底层�?维》
COLA分为两个部分,COLA架构和COLA组件。
一�?COLA架构
COLA 概述
架构的�?义 就是 �?ç´ ç»“æž„ï¼š
- �?ç´ æ˜¯ 组�?架构的�?�?å…ƒç´ ï¼›
- 结构 是 �?ç´ ä¹‹é—´çš„å…³ç³»ã€‚
而 应用架构的�?义 就在于
- 定义一套良好的结构;
- 治�?�应用�?�?�度,�?低系统熵值;
- 从�?心所欲的混乱状�?,走�?�井井有�?�的有�?状�?。
COLA架构就是为æ¤è€Œç”Ÿï¼Œå…¶æ ¸å¿ƒï¿½?�责就是定义良好的应用结构,�??供最佳应用架构的最佳实践。通过�?æ–æŽ¢ç´¢ï¼Œæˆ‘ä»¬ï¿½?�现良好的分层结构,良好的包结构定义,�?�以帮助我们治�?�混乱�?å ªçš„ä¸šåŠ¡åº”ç”¨ç³»ç»Ÿã€‚
�?过多次è¿ä»£ï¼Œæˆ‘们定义出了相对稳定�?�?��?�的应用架构:COLA 4.0
COLA Archetype
好的应用架构,都�?�循一些共�?�模�?,�?管是å…边形架构�?洋葱圈架构�?整�?架构�?还是COLA架构,都�??å€¡ä»¥ä¸šåŠ¡ä¸ºæ ¸å¿ƒï¼Œè§£è€¦å¤–éƒ¨ï¿½?赖,分离业务�?�?�度和技术�?�?�度ç‰ã€‚
COLA架构区别于这些架构的地方,在于除了�?想之外,我们还�??供了�?��?�地的工具和实践指导。
为了能够快速创建满足COLA架构的应用,我们�??供了两个archetype,�?于cola-archetypes目录下:
cola-archetype-service:用�?�创建纯�?�端�?务的archetype。cola-archetype-web:用�?�创建adapter和�?�端�?务一体的web应用archetype。
二�?COLA组件
æ¤å¤–,我们还�??供了一些�?�常有用的通用组件,这些组件�?�以帮助我们�??�?ï¿½ç ”ï¿½?�效率。
这些功能组件被收拢在cola-components目录下�?�。到目�?为æ¢ï¼Œæˆ‘们已�?沉淀了以下组件:
| 组件�??称 | 功能 | 版本 | �?赖 |
|---|---|---|---|
cola-component-dto |
定义了DTOæ ¼ï¿½?,包括分页 |
1.0.0 | æ— |
cola-component-exception |
å®šä¹‰äº†å¼‚å¸¸æ ¼ï¿½?, 主�?有 BizExceptionå’ŒSysException |
1.0.0 | æ— |
cola-component-statemachine |
状�?机组件 | 1.0.0 | æ— |
cola-component-domain-starter |
Spring托管的领域实体组件 |
1.0.0 | æ— |
cola-component-catchlog-starter |
异常处�?�和日志组件 | 1.0.0 | exception�? dto组件 |
cola-component-extension-starter |
扩展点组件 | 1.0.0 | æ— |
cola-component-test-container |
测试容器组件 | 1.0.0 | æ— |
三�?如何使用COLA
1. 创建应用
执行以下命令:
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.0.1命令执行�?功的�?,会看到如下的应用代�?结构:
注:也�?�以使用阿里云的应用生�?器:https://start.aliyun.com/bootstrap.html 生�?cola应用。
2. �?行应用
- 在
项目目录下�?行mvn install(如果�?想�?行测试,�?ï¿½ä»¥åŠ ä¸Š-DskipTests�?�数)。 - 进入
start目录,执行mvn spring-boot:run。
�?行�?功的�?,�?�以看到SpringBoot�?�动�?功的界�?�。 - 生�?的应用ä¸ï¼Œå·²ï¿½?实现了一个简�?�的
Rest请求,�?�以在�?览器ä¸è¾“å…¥ http://localhost:8080/helloworld 进行测试。
如果�?生�?�?是web工程而是service工程也类似,执行的是下�?�的命令:
mvn archetype:generate \
-DgroupId=com.alibaba.cola.demo.service \
-DartifactId=demo-service \
-Dversion=1.0.0-SNAPSHOT \
-Dpackage=com.alibaba.demo \
-DarchetypeArtifactId=cola-framework-archetype-service \
-DarchetypeGroupId=com.alibaba.cola \
-DarchetypeVersion=4.0.1版本è¿ä»£
4.0.0 版本
https://blog.csdn.net/significantfrank/article/details/110934799
3.1.0 版本
https://blog.csdn.net/significantfrank/article/details/109529311
- 进一æ¥ç®€åŒ–了
cola-core,�?��?留了扩展能力。 - 将
exception从cola-core移入到cola-common。 - 对
archetypeä¸çš„分包逻辑进行�?构,改�?按照domain�?�划分。 - å°†
cola-archetype-webä¸çš„controller改�??为adapter,为了呼应å…边形架构的命�??。
3.0.0 版本
https://blog.csdn.net/significantfrank/article/details/106976804
2.0.0 版本
https://blog.csdn.net/significantfrank/article/details/100074716
1.0.0 版本
https://blog.csdn.net/significantfrank/article/details/85785565






