<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          COLA Framework整潔面向?qū)ο蠓謱蛹軜?gòu)

          聯(lián)合創(chuàng)作 · 2023-09-30 04:38

          COLA是Clean Object-Oriented and Layered Architecture的縮寫,代表“整潔面向?qū)ο蠓謱蛹軜?gòu)”,也叫“可樂”架構(gòu)。

          注意本架構(gòu)曾用名SOFA、COPA,以后統(tǒng)一使用COLA這個新名稱,帶來不便,表示抱歉

          更多關(guān)于COLA架構(gòu)的信息:

          • COLA架構(gòu)的設(shè)計思想和原理:請點擊
          • 領(lǐng)域建模的方法論:請點擊

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

          項目說明

          COLA框架包括兩個Project,一個是cola-framework里面是框架的核心代碼,另一個是cola-archetype是用來生成新應(yīng)用的Maven Archetype源碼。

          cola-framework Project

          該Project包含3個Module,cola-core, cola-common, cola-test

          cola-core

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

          com
          └── alibaba
              └── cola
                  ├── assembler  \\提供Assembler標(biāo)準(zhǔn)
                  ├── boot \\這是框架的核心啟動包,負責(zé)框架組件的注冊、發(fā)現(xiàn)
                  ├── command  \\提供Command標(biāo)準(zhǔn)
                  ├── common
                  ├── context  \\提供框架執(zhí)行所需要的上下文
                  ├── convertor  \\提供Convertor標(biāo)準(zhǔn)
                  ├── domain  \\提供Domain Entity標(biāo)準(zhǔn)
                  ├── event
                  ├── exception \\提供Exception標(biāo)準(zhǔn)
                  ├── extension  \\負責(zé)擴展機制中的重要概念-擴展(Extension)的定義和執(zhí)行
                  ├── extensionpoint  \\負責(zé)擴展機制中的重要概念-擴展點(Extension Point)的定義
                  ├── logger  \\提供DIP的日志接口
                  ├── repository  \\提供倉儲(Repository)的標(biāo)準(zhǔn)
                  ├── rule  \\提供業(yè)務(wù)規(guī)則或者叫策略(Rule)的標(biāo)準(zhǔn)和執(zhí)行
                  │   └── ruleengine
                  └── validator  \\提供Validator標(biāo)準(zhǔn)和執(zhí)行
          

          cola-common

          該Module提供了框架中Client Object, Entity Object和Data Object的定義,二方庫會依賴該Module。

          cola-test

          該Module主要是提供一些開發(fā)測試的工具,可以使用TDD來進行開發(fā)。

          cola-archetype Project

          為了提升應(yīng)用創(chuàng)建的效率,以及保證架構(gòu)風(fēng)格和規(guī)范被準(zhǔn)守。我們開發(fā)了創(chuàng)建應(yīng)用的Maven Archetype,這樣只要執(zhí)行一行命令就可以生成一個基于COLA框架的應(yīng)用骨架來。

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

          1. 下載Archetype

          2. 安裝Archetype到本地:運行 mvn install

          3. 生成應(yīng)用,比如,要生成一個名為demo應(yīng)用,只要執(zhí)行下面的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參數(shù))。然后進入start目錄,執(zhí)行mvn spring-boot:run。 運行成功的話,可以看到SpringBoot啟動成功的界面

          2. 執(zhí)行測試,生成的應(yīng)用中,已經(jīng)實現(xiàn)了一個簡單的Rest請求,可以在瀏覽器中輸入 http://localhost:8080/customer?name=World 進行測試。

          3. 請求執(zhí)行成功的話,可以在瀏覽器中的返回值中看到:"customerName":"Hello, World"。同時觀察啟動SpringBoot的控制臺,可以看到LoggerInterceptor打印出來的日志。

          查看生成的demo應(yīng)用,我們可以看到生成了5個module,分別是demo-controller、demo-client、demo-app、demo-domain、demo-infrastructure。其中demo-client是用來存放RPC調(diào)用中的DTO(Data Transfer Object)類,其它四個module分別對應(yīng)控制層、應(yīng)用層、領(lǐng)域?qū)雍突A(chǔ)實施層。

          瀏覽 27
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲无码视频一区 | 插入白丝袜舞蹈生妹妹的嫩穴网站 | 最新超碰上传 | 亚洲在线网站 | 中文字幕+乱码+中文字幕17c |