阿里开源COLA 4.0源码编译和部署过程
Posted 领域驱动设计 DDD
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里开源COLA 4.0源码编译和部署过程相关的知识,希望对你有一定的参考价值。
COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“整洁面向对象分层架构”。 目前COLA已经发展到COLA 4.0。关于COLA架构详细入门和示例应用项目,可以访问《COLA 4.x架构入门和项目实践》技术专栏。
一、生成archeType模版文件
首先,从github获取cola源码:https://github.com/alibaba/COLA
打开项目所在目录,运行命令:mvn archetype:create-from-project
运行完这个命令后,会在项目目录下生成target目录,这个target目录下就是自动生成项目的模版项目,并生成一个jar。
二、将模版项目安装到maven
进入到target/generated-sources/archetype目录下,运行mvn install,将这个jar安装到本地仓库,当我们用archetype生成项目时,就需要选中我们安装的jar。如果需要共享到别它人,需要再执行mvn deploy,安装到中央仓库。
检查本地maven仓库中的jar包,如图所示:
~/.m2/repository/com/alibaba/cola/cola-framework-archetype-service-archetype/4.0.1/cola-framework-archetype-service-archetype-4.0.1.jar
三、添加自定义的archetype模版
在IDEA中添加上述编译生成的COLA项目模板,如图所示,这里的groupid、artifactid、version 使用mvn archetype:create-from-project命令生成的target/generated-sources/archetype目录下pom文件对应的值,设置参数如下:
<groupId>com.alibaba.cola</groupId>
<artifactId>cola-framework-archetype-service-archetype</artifactId>
<version>4.0.1</version>
添加完成之后,新增的COLA 项目模板就出现在列表中了,如图所示。
然后,在创建Maven项目时,就可以选择该Maven项目模板了。
DDD对构建企业级应用开发平台和大型核心业务系统的作用是非常明显的,无论是在产品的稳定性、扩展性、可维护性、生命周期等方面都有显著的提升。
领域驱动开发好处多多,概念比较多,门槛相对较高,对人员有一定要求,团队里至少需要有领路人。而领域驱动尤其适合业务相对复杂的项目。
《DDD领域驱动设计-货物运输系统》技术专栏从实战出发,通过DDD领域设计知识讲解-运行环境搭建-项目案例实战和源代码分析,让初学者快速掌握DDD和微服务应用开发。在技术专栏中,涉及到DDD领域模型设计、CQRS命令查询职责分离架构、EDA架构、六边形架构、Spring Boot、Spring Data JPA、Spring Cloud Stream和RabbitMQ等等知识点。欢迎访问和交流。
阿里开源的COLA 4.0整洁面向对象分层架构到底是什么?
COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“整洁面向对象分层架构”,是来自阿里技术专家的开源项目。目前COLA已经发展到COLA 4.0。
COLA既是框架,也是架构。COLA框架继承了DDD的设计思想。
对于一个典型的业务应用系统来说,COLA会做如下代码层次定义,每一层都有明确的职责定义:
1)适配层(Adapter Layer):负责对前端展示(web,wireless,wap)的路由和适配,对于传统B/S系统而言,adapter就相当于MVC中的controller;
2)应用层(Application Layer):主要负责获取输入,组装上下文,参数校验,调用领域层做业务处理,如果需要的话,发送消息通知等。层次是开放的,应用层也可以绕过领域层,直接访问基础实施层;
3)领域层(Domain Layer):主要是封装了领域模型和核心业务逻辑,并通过领域服务(Domain Service)和领域对象(Domain Object)的方法对Application层提供业务实体和业务逻辑计算。领域是应用的核心,不依赖任何其他层次;
4)基础实施层(Infrastructure Layer):主要负责技术细节问题的处理,比如数据库的CRUD、搜索引擎、文件系统、分布式服务的RPC等。此外,领域防腐的重任也落在这里,外部依赖需要通过gateway的转义处理,才能被上面的Application层和Domain层使用。
下图是基于COLA 架构建的DDD经典示例应用-货物运输系统(Cargo Tracker Application)的代码结构:
《COLA 4.x架构入门和项目实践》技术专栏详细讲解COLA框架的使用,领域驱动设计DDD中领域模型的开发,以及DDD经典示例项目-货物运输系统(Cargo Tracker Application)代码实现细节。
以上是关于阿里开源COLA 4.0源码编译和部署过程的主要内容,如果未能解决你的问题,请参考以下文章