COLA Framework 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
COLA Framework 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 LGPL
开发语言 Java
操作系统 跨平台
软件类型 开源软件
开发厂商 阿里巴巴
地区 国产
提 交 者 红薯
适用人群 未知
收录时间 2019-08-07

软件简介

COLA是Clean Object-Oriented and Layered Architecture的缩写,代表“整洁面向对象分层架构”,也叫“可乐”架构。

注意本架构曾用名SOFA、COPA,以后统一使用COLA这个新名称,带来不便,表示抱歉

更多关于COLA架构的信息:

需要进一步交流的,可以微信咨询: josico-nie

项目说明

COLA框架包括两个Project,一个是cola-framework里面是框架的核心代码,另一个是cola-archetype是用来生成新应用的Maven Archetype源码。

cola-framework Project

该Project包含3个Module,cola-core, cola-common, cola-test

cola-core

该Module是整个框架的核心,里面的主要功能和Package如下:

com
└── alibaba
    └── cola
        ├── assembler  \\提供Assembler标准
        ├── boot \\这是框架的核心启动包,负责框架组件的注册、发现
        ├── command  \\提供Command标准
        ├── common
        ├── context  \\提供框架执行所需要的上下文
        ├── convertor  \\提供Convertor标准
        ├── domain  \\提供Domain Entity标准
        ├── event
        ├── exception \\提供Exception标准
        ├── extension  \\负责扩展机制中的重要概念-扩展(Extension)的定义和执行
        ├── extensionpoint  \\负责扩展机制中的重要概念-扩展点(Extension Point)的定义
        ├── logger  \\提供DIP的日志接口
        ├── repository  \\提供仓储(Repository)的标准
        ├── rule  \\提供业务规则或者叫策略(Rule)的标准和执行
        │   └── ruleengine
        └── validator  \\提供Validator标准和执行

cola-common

该Module提供了框架中Client Object, Entity Object和Data Object的定义,二方库会依赖该Module。

cola-test

该Module主要是提供一些开发测试的工具,可以使用TDD来进行开发。

cola-archetype Project

为了提升应用创建的效率,以及保证架构风格和规范被准守。我们开发了创建应用的Maven Archetype,这样只要执行一行命令就可以生成一个基于COLA框架的应用骨架来。

可以按照以下步骤使用COLA Archetype:

  1. 下载Archetype

  2. 安装Archetype到本地:运行 mvn install

  3. 生成应用,比如,要生成一个名为demo应用,只要执行下面的maven 命令:

mvn archetype:generate  -DgroupId=com.alibaba.sample -DartifactId=demo -Dversion=1.0.0-SNAPSHOT -Dpackage=com.alibaba.sample -DarchetypeArtifactId=cola-framework-archetype -DarchetypeGroupId=com.alibaba.cola -DarchetypeVersion=1.0.0-SNAPSHOT
  1. 启动SpringBoot,首先在demo目录下运行mvn install(如果不想运行测试,可以加上-DskipTests参数)。然后进入start目录,执行mvn spring-boot:run。 运行成功的话,可以看到SpringBoot启动成功的界面

  2. 执行测试,生成的应用中,已经实现了一个简单的Rest请求,可以在浏览器中输入 http://localhost:8080/customer?name=World 进行测试。

  3. 请求执行成功的话,可以在浏览器中的返回值中看到:"customerName":"Hello, World"。同时观察启动SpringBoot的控制台,可以看到LoggerInterceptor打印出来的日志。

查看生成的demo应用,我们可以看到生成了5个module,分别是demo-controller、demo-client、demo-app、demo-domain、demo-infrastructure。其中demo-client是用来存放RPC调用中的DTO(Data Transfer Object)类,其它四个module分别对应控制层、应用层、领域层和基础实施层。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (3)

加载中
COLA,SOFA,COPA,MOSN,SOFABoot,SOFAStack等等都是什么关系?变身改名狂魔没关系,对应管理要理清楚呀
09/04 11:32
回复
举报
根本就安装不上,到处是错误。阿里就这个水平吗?
08/14 07:51
回复
举报
本想支持一下的,但是坑太多
08/06 09:52
回复
举报
更多评论
暂无内容
发表了博客
2019/04/10 10:10

cola-ui的使用

[toc] 官网:http://www.cola-ui.com 教程位置:http://www.cola-ui.com/guide/model API: http://www.cola-ui.com/api/cola.html , http://legacy.cola-ui.com 组件地址:http://www.cola-ui.com/docs/button 源码地址:https://github.com/Cola-Org/cola-ui 产品简介 Cola UI是支持双向数据绑定的一站式前端UI框架。采...

0
0
发表了博客
2019/07/18 10:17

cola-ui的使用

[toc] 官方:http://www.cola-ui.com 教程位置:http://www.cola-ui.com/guide/model API: http://www.cola-ui.com/api/cola.html , http://legacy.cola-ui.com 组件地址:http://www.cola-ui.com/docs/button 源......

0
0
发表了博客
2013/12/17 21:39

spider-roach and cola

一个分布式定向抓取集群的简单实现。 Cola是一个分布式的爬虫框架,用户只需编写几个特定的函数,而无需关注分布式运行的细节。任务会自动分配到多台机器上,整个过程对用户是透明的。

0
0
发表于AI & 大数据专区
2018/08/13 16:15

centos 安装Git-cola

首先安装Git sudo yum -y install git* 找到 git-all.noarch , 安装这个. sudo yum install git-all.noarch ============ 以下是git-cola的文档内容 ========== 因为貌似Centos的yum没有提供cola的下载. 我用......

0
0
05/25 23:23

COLA的扩展性使用和源码研究

cola扩展点使用和设计初探 封装变化,可灵活应对程序的需求变化。 扩展点使用 步骤: 定义扩展点接口,类型可以是校验器,转换器,实体; 必须以ExtPt结尾,表示一个扩展点。 比如,我定义一个云枢的组织结构的扩展...

0
0
发表了博客
07/17 09:47

架构简洁之道:从阿里开源应用架构COLA说起

导读:COLA 的主要目的是为应用架构提供一套简单的可以复制、可以理解、可以落地、可以控制复杂性的”指导和约束"。在实践中作者发现 COLA 在简洁性上仍有不足,因此给 COLA 做了一次“升级”,在这次升级中,没有增加任何新的功能,而是尽量多删减了一些概念和功能,让 COLA 更简洁有效。 最近,同事告诉我,COLA 作为应...

0
0
07/09 14:23

架构简洁之道:从阿里开源应用架构 COLA 说起

导读:COLA 的主要目的是为应用架构提供一套简单的可以复制、可以理解、可以落地、可以控制复杂性的”指导和约束"。在实践中作者发现 COLA 在简洁性上仍有不足,因此给 COLA 做了一次“升级”,在这次升级中,没有...

1
8
发表了博客
07/16 11:19

架构简洁之道:从阿里开源应用架构 COLA 说起

导读:COLA 的主要目的是为应用架构提供一套简单的可以复制、可以理解、可以落地、可以控制复杂性的”指导和约束"。在实践中作者发现 COLA 在简洁性上仍有不足,因此给 COLA 做了一次“升级”,在这次升级中,没有...

0
0
发表了博客
07/10 12:15

架构简洁之道:从阿里开源应用架构 COLA 说起

导读:COLA 的主要目的是为应用架构提供一套简单的可以复制、可以理解、可以落地、可以控制复杂性的”指导和约束"。在实践中作者发现 COLA 在简洁性上仍有不足,因此给 COLA 做了一次“升级”,在这次升级中,没有增加任何新的功能,而是尽量多删减了一些概念和功能,让 COLA 更简洁有效。 最近,同事告诉我,COLA 作为应...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
3 评论
23 收藏
分享
返回顶部
顶部