<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                # 認證服務: lamp-oauth 主要包括 登錄接口、獲取用戶權限接口、常用數據接口(如前端獲取的字典、枚舉接口)等接口和功能。 # 租戶服務: lamp-tenant 主要包括 租戶管理、給租戶創建獨立數據源(數據源模式)、租戶管理員維護、 租戶表結構初始化、租戶表數據初始化 等功能。 # 權限服務: lamp-authority 主要包括 組織機構管理、崗位管理、租戶下的用戶管理、系統設置、權限配置等功能。 # 消息服務: lamp-msg 主要包括 站內信(通知、公告、待辦、預警)、短信功能、郵件功能(尚未實現) 等。 支持多種第三方短信、多種第三方郵件。 # 文件服務: lamp-file 主要包括 文件存儲、文件下載、文件回顯等功能。支持多種第三方OSS存儲。 # 網關服務: lamp-gateway 主要包括 token解析、用戶uri權限攔截、黑白名單、限流等功能。 # 工作流服務 (會員版): lamp-activiti 工作流配置功能 # SpringBootAdmin監控: lamp-monitor 監控功能 # lamp-cloud 目錄結構 ``` ├── 01-docs # 文檔 │?? ├── activiti # (會員版)工作流模板 │?? ├── dockerfile # 常用工具的dockerfile │?? ├── image │?? ├── shells # 運行腳本 │?? ├── sql # 數據庫腳本 ├── 01-third-party # 第三方配置 │?? ├── nacos # 項目需要的nacos配置 │?? └── seata # 項目需要的seata配置 ├── lamp-activiti # (會員版)工作流服務 │?? ├── lamp-activiti-biz │?? ├── lamp-activiti-controller │?? ├── lamp-activiti-entity │?? └── lamp-activiti-server ├── lamp-authority # 權限服務 │?? ├── lamp-authority-api │?? ├── lamp-authority-biz │?? ├── lamp-authority-controller │?? ├── lamp-authority-entity │?? └── lamp-authority-server ├── lamp-file # 文件服務 │?? ├── lamp-file-api │?? ├── lamp-file-biz │?? ├── lamp-file-controller │?? ├── lamp-file-entity │?? └── lamp-file-server ├── lamp-gateway # 網關服務 │?? ├── lamp-gateway-biz # (會員版) │?? └── lamp-gateway-server ├── lamp-msg # 消息服務 │?? ├── lamp-msg-api │?? ├── lamp-msg-biz │?? ├── lamp-msg-controller │?? ├── lamp-msg-entity │?? ├── lamp-msg-server │?? ├── lamp-sms-biz │?? └── lamp-sms-controller ├── lamp-oauth # 認證服務 │?? ├── lamp-oauth-api │?? ├── lamp-oauth-biz │?? ├── lamp-oauth-controller │?? └── lamp-oauth-server ├── lamp-public # 公共模塊 │?? ├── lamp-common │?? ├── lamp-common-api │?? ├── lamp-file-sdk │?? ├── lamp-tenant-datasource # (會員版) 數據源模式 │?? └── lamp-tenant-datasource-init # (會員版) 數據源模式初始化sdk ├── lamp-support # 支撐服務 │?? └── lamp-monitor # spring boot admin 監控 ├── lamp-tenant # 租戶服務 │?? ├── lamp-tenant-biz │?? ├── lamp-tenant-controller │?? ├── lamp-tenant-entity │?? └── lamp-tenant-server └── src └── main └── filters └── config-dev.properties # 開發環境全局配置 └── config-prod.properties # 生產環境全局配置 ``` # 項目結構介紹 - lamp_cloud ![](https://img.kancloud.cn/b6/f2/b6f28afe5d659e1ed9d488060e667fad_722x1063.png) # 概念聲明 1. 層: - API層: 包含lamp-authority-api、lamp-file-api、lamp-msg-api 、lamp-oauth-api 等模塊 - 業務層:包含lamp-authority-biz、lamp-tenant-biz、lamp-file-biz、lamp-msg-biz 、lamp-sms-biz、lamp-oauth-biz等模塊 - 控制層:包含lamp-authority-controller、lamp-tenant-controller、lamp-file-controller、lamp-msg-controller 、lamp-sms-controller、lamp-oauth-controller等模塊 - 實體層:包含lamp-authority-entity、lamp-tenant-entity、lamp-file-entity、lamp-msg-entity 、lamp-sms-entity等模塊 - 啟動層:包含lamp-authority-server、lamp-tenant-server、lamp-file-server、lamp-msg-server 、lamp-sms-server、lamp-oauth-server等模塊 2. 模塊: (模塊和層可以混著說, 知道團隊的人懂即可) - lamp-util 項目下的每個包. 如 lamp-core、 lamp-cloud-starter - lamp-cloud 項目下的每個包. 如lamp-authority-api、lamp-common等 - lamp-boot 項目下的每個包. 如lamp-authority-server、lamp-common等 3. 服務: - 認證服務:lamp-oauth下的所有模塊組成權限服務 - 租戶服務:lamp-tenant下的所有模塊組成租戶服務 - 權限服務:lamp-authority下的所有模塊組成權限服務 - 文件服務:lamp-file下的所有模塊組成文件服務 - 網關服務:lamp-gateway下的所有模塊組成網關服務 - 消息服務:lamp-msg下的所有模塊組成消息服務 - 監控服務:lamp-monitor 4. lamp-public 目錄下存放 業務服務公共模塊和收費的插件 : - lamp-common 模塊用于存放跟大多數服務有關的常量類和工具類等 - lamp-common-api 模塊公共api層 - lamp-tenant-datasource (會員版): DATASOURCE模式的實現類 - lamp-tenant-datasource-init (會員版) : DATASOURCE模式的初始化數據源模塊,用于業務服務啟動時,初始化租戶數據源 - lamp-file-sdk: 附件sdk,用于業務服務保存和查詢業務附件信息 總結: 一個服務可以包含多個模塊,一個模塊可以包含多個層。 比如:權限服務包含 租戶模塊和權限模塊, 權限模塊包含api層、業務層、控制層、實體層、啟動層, 但租戶模塊沒有api層和啟動層, 因為租戶模塊是依賴權限模塊的用戶相關接口的,若獨立成租戶服務,會涉及跨服務訪問,故合并成一個服務。 # 疑問??? 都已經是微服務項目了, 為什么還要將項目按模塊拆封得如此細? 1. 受到原來項目的“影響“, 已經習慣了將一個大項目按照功能拆封成多個模塊的習慣 2. 按照大功能將代碼物理拆分成多個模塊后, 強制按照server -> controller -> biz -> entity 層的依賴關系來開發功能 - 可以讓項目結構更加清晰, 是典型的低耦合、高內聚體現; - 可以避免開發水平參差不齊的團隊,胡亂添加依賴, 胡亂注入Bean. (只允許: Controller 調用 Service, Service調用Mapper) 3. 當某個項目不需要功能時(如沒有站內信、沒有短信發送、沒有操作日志等), 按模塊拆分的短信和站內信可以很輕松的在消息服務排除或者刪除這2個功能, 而想要排除操作日志功能,必須得在權限服務一個類一個類的刪除或注釋, 異常的麻煩. # 服務拆分模塊建議 原則上推薦一個服務最好包含5個模塊(api模塊、entity模塊、biz模塊、controller層、server層), 但任何事情都不是絕對的,具體怎么分模塊可以根據業務自身情況來定. 如: 消息服務希望將站內消息、短信、郵件等相關等邏輯集成到消息服務, 這幾個功能既有獨立性, 做得更細一些,甚至可以將站內消息、短信、郵件等功能獨立成單獨的服務, 但這務必會增加系統部署開銷, 所以綜合考慮, 將站內消息、短信、郵件等功能按模塊開發,然后組合成一個服務, 即降低了部署等成本,也將每個功能獨立出來,方便日后獨立成單獨的服務和禁用某些功能. # API層 說明: 服務于服務之間互相訪問時,通過api模塊來調用。api 模塊實際上就是通過聲明式FeignClient實現的接口,B服務調用A服務的UserApi接口時,FeignClient將該次調用封裝成Http請求, 最后訪問的是A服務的 Contoller層接口。 # 業務層 說明: 主要存放Servce接口及實現,Redis操作類、Mapper接口以及Xml(resources目錄下)。 約定如下: > AService 能注入BServce,但禁止直接或間接循環注入。如AService -> BService ,BService->AService > 在Service 層封裝 業務邏輯, 操作緩存接口、Mapper接口的操作 # 實體層 說明: 存放實體po、文件傳輸對象DTO(本項目忽略VO)、枚舉類型等,不涉及邏輯的一些類。 # 控制層說明: 主要存放一些服務的 Contrller 接口, 用于對外訪問。 約定如下: > Controller 不能互相注入調用(我不說,真有人這么干!) > Controller 只能調用Service,禁止調用Mapper(Dao) > Controller 主要負責參數驗證、轉換等操作,盡量別寫業務代碼 # 啟動層說明: 主要存放一些服務所需的啟動類、配置類、配置文件、消息隊列消費方監聽入口等 # 每個層的依賴關系: 每個服務一般情況下都包含5個層: server、controller、biz、entity、api (特殊情況可以刪減一些),他們的依賴依賴關系為: `server -> controller -> biz -> entity` ,api層獨立,用于其他服務依賴。 # lamp-cloud項目模塊依賴圖 (圖片適用于3.0+版本) ![](https://img.kancloud.cn/ef/5d/ef5d29939cda16d41f7d505b040149a4_1623x741.png) # 調用流程(lamp-cloud) ![](https://img.kancloud.cn/4c/29/4c2997ae5606eb5c40638a07441eb0c7_3062x961.jpg)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看