🥤 COLA 4.0
COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“整���对象分层架构�。 目�COLA已��展到COLA 4.0。
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 Components
æ¤å¤–,我们还æ??供了一些é?žå¸¸æœ‰ç”¨çš„通用组件,这些组件å?¯ä»¥å¸®åŠ©æˆ‘ä»¬æ??å?‡ç ”å?‘效率。
这些功能组件被收拢在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
关于COLA的更多信�,请关注微信公众�:
å¦‚æžœä½ æœ‰æŠ€æœ¯çƒæƒ…,对阿里有兴趣,å?¯ä»¥email:fulan.zjf@alibaba-inc.com




