alibaba-COLA框架module分析

本文详细分析了ALIBABA的COLA框架,包括各个模块的作用:xxx-controller负责@RestController,xxx-app处理输入和业务逻辑,xxx-domain提供业务处理和持久化,xxx-infrastructure包含Repository和其他基础设施,而start则作为SpringBoot的启动入口。每个模块都有明确的职责划分,确保代码组织清晰。
摘要由CSDN通过智能技术生成

概览

COLA-framework的module如下:

cola-common
cola-core
cola-test

用maven-archetype生成的代码例子的module情况:

demo-app
demo-client
demo-controller
demo-domain
demo-infrastructure
start

各module介绍

按照数据流的顺序,分别介绍各moduel的作用,以及代码放置的地方:

xxx-controller:

容易理解,放置所有的`@RestController`;
一般的分包如下:

com.alibaba.xxx.controller

xxx-app:

主要负责获取输入,组装context,做输入校验,发送消息给领域层做业务处理,监听确认消息,如果需要的话使用MetaQ进行消息通知;

一般包含以下这些包:

com.alibaba.sample.command                // CmdExe执行器
com.alibaba.sample.command.query          // QryExe执行器
com.alibaba.sample.command.extensionpoint // 扩展点(接口)
com.alibaba.sample.command.extension      // 扩展(实现&#x
Building the FP-tree: Transaction ID #1: apple, banana, coca-cola, doughnut ``` root | a | p | p - b | | | c | | | d ``` Transaction ID #2: banana, coca-cola ``` root | a | p - b - c | | | d ``` Transaction ID #3: banana, doughnut ``` root | a | p - b - c | | | | | d | | | d ``` Transaction ID #4: apple, coca-cola ``` root | a - c | | | p - b - c | | | | | d | | | d ``` Transaction ID #5: apple, banana, doughnut ``` root | a - b - d | | | | | c | | | p - b - c | | | d | b - d | c ``` Transaction ID #6: apple, banana, coca-cola ``` root | a - b - c | | | | | d | | | p - b - c | | | d | b - d | c ``` Using the FP-Growth algorithm to discover frequent itemsets: Starting with the most frequent item (d): - d (4) - b-d (3) - c-b-d (2) - a-b-d (2) - a-p-b-d (2) Next, starting with the next most frequent item (b): - b (4) - a-b (3) - p-b (3) - c-b (2) - a-p-b (2) - c-b-d (2) - a-b-d (2) - a-p-b-d (2) Finally, starting with the least frequent item (c): - c (3) - b-c (2) - a-b-c (2) - p-b-c (2) - c-b-d (2) - a-b-d (2) - a-p-b-d (2) All sets of frequent itemsets with minimum support of 2 are: - {d} (4) - {b} (4) - {c} (3) - {a, d} (2) - {b, d} (3) - {p, b, d} (2) - {c, b, d} (2) - {a, b, d} (2) - {a, p, b, d} (2) - {a, b} (3) - {p, b} (3) - {c, b} (2) - {a, p, b} (2) - {c, b, d} (2) - {a, b, d} (2) - {a, p, b, d} (2) - {a, c, b} (2) - {p, c, b} (2) - {a, p, c, b} (2) Using the Apriori algorithm to verify the frequent itemsets with minimum support of 2: Starting with 1-itemsets: - {apple} (3) - {banana} (4) - {coca-cola} (3) - {doughnut} (4) Next, starting with 2-itemsets: - {apple, banana} (2) - {apple, coca-cola} (1) - {apple, doughnut} (2) - {banana, coca-cola} (2) - {banana, doughnut} (2) - {coca-cola, doughnut} (2) Finally, starting with 3-itemsets: - {apple, banana, doughnut} (2) All sets of frequent itemsets with minimum support of 2 are: - {banana} (4) - {doughnut} (4) - {apple} (3) - {coca-cola} (3) - {banana, doughnut} (2) - {apple, doughnut} (2) - {apple, banana} (2) - {banana, coca-cola} (2) - {coca-cola, doughnut} (2) - {apple, banana, doughnut} (2) The Apriori algorithm generates the same set of frequent itemsets with minimum support of 2 as the FP-Growth algorithm. Deriving all association rules with 70% minimum confidence for the frequent itemset {Apple, Banana, Doughnut}: First, find all the subsets of {Apple, Banana, Doughnut}: - {Apple, Banana} - {Apple, Doughnut} - {Banana, Doughnut} - {Apple} - {Banana} - {Doughnut} Next, calculate the confidence for each rule: - {Apple, Banana} -> {Doughnut} (2/2 = 100%) - {Apple, Doughnut} -> {Banana} (2/2 = 100%) - {Banana, Doughnut} -> {Apple} (2/2 = 100%) - {Apple} -> {Banana, Doughnut} (2/3 = 67%) - {Banana} -> {Apple, Doughnut} (2/4 = 50%) - {Doughnut} -> {Apple, Banana} (2/4 = 50%) All association rules with minimum confidence of 70% for the frequent itemset {Apple, Banana, Doughnut} are: - {Apple, Banana} -> {Doughnut} - {Apple, Doughnut} -> {Banana} - {Banana, Doughnut} -> {Apple}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值