1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Spring Modulith在 Spring Boot 應(yīng)用中實(shí)現(xiàn)邏輯模塊

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

        Spring Modulith 支持開(kāi)發(fā)人員在 Spring Boot 應(yīng)用程序中實(shí)現(xiàn)邏輯模塊,它允許應(yīng)用結(jié)構(gòu)驗(yàn)證、記錄模塊安排、為單個(gè)模塊運(yùn)行集成測(cè)試、在運(yùn)行時(shí)觀察模塊交互,以及以松散耦合的方式實(shí)現(xiàn)模塊交互。

        Spring Modulith 項(xiàng)目引入了新的類(lèi)和注釋但不生成代碼,它的模塊不使用 Java 平臺(tái)模塊系統(tǒng) (JPMS),而是映射到純 Java 包。模塊有一個(gè) API,但 Spring Modulith 鼓勵(lì)使用 Spring 應(yīng)用程序事件作為“交互的主要方式”,這些事件可以自動(dòng)保存到事件日志中。

        簡(jiǎn)單的說(shuō),Spring Modulith提供一套工具,可以消息傳遞的方式來(lái)實(shí)現(xiàn)同一個(gè) monolithic 服務(wù)內(nèi)部的跨模塊調(diào)用(而不是直接互相調(diào)用 API)。

        Spring Modulith 基于 Spring Boot 3.0、Framework 6、Java 17 和 JakartaEE 9 ,它是 Moduliths 項(xiàng)目的繼承者,后者使用 Spring Boot 2.7,但現(xiàn)已停用,在 2023 年 11 月之前僅接受錯(cuò)誤修復(fù)。

        快速開(kāi)始

        1. 在https://start.spring.io上創(chuàng)建一個(gè) Spring Boot 應(yīng)用程序

        2. 創(chuàng)建一個(gè) Java 包安排,將業(yè)務(wù)模塊作為應(yīng)用程序主包的直接子包。

          □ Example
          └─ □ src/main/java
             ├─ □ example           <1>
             |  └─ Application.java
             ├─ □ example.inventory <2>
             |  └─ …
             └─ □ example.order     <2>
                └─ …
          1. 應(yīng)用程序根包

          2. 應(yīng)用模塊包

        3. 創(chuàng)建 ApplicationModules 模型、運(yùn)行驗(yàn)證創(chuàng)建文檔片段

          class ApplicationTests {
          
            @Test
            void writeDocumentationSnippets() {
          
              var modules = ApplicationModules.of(Application.class).verify(); (1)
          
              new Documenter(modules) (2)
                .writeModulesAsPlantUml()
                .writeIndividualModulesAsPlantUml();
            }
          }
          1. 創(chuàng)建應(yīng)用程序模塊模型并驗(yàn)證其結(jié)構(gòu)。

          2. 將Asciidoctor片段(組件圖、應(yīng)用程序模塊畫(huà)布)渲染到target/modulith-docs.

        4. 為各個(gè)應(yīng)用程序模塊運(yùn)行集成測(cè)試。

          □ Example
          └─ □ src/test/java
             └─ □ example.order
                └─ OrderModuleIntegrationTests.java
          @ApplicationModuleTests
          class OrderModuleIntegrationTests {
          
            @Test
            void someTestMethod() { … }
          }
        瀏覽 16
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            农村妇女亂伦91熟妇 | 天天躁天天操 | 在线观看你懂得 | 性感美女被操网站 | 红桃无码视频 | www.欧美黄 | 日本啪啪啪一区二区 | 久久网国产| 欧美做爰视频 | 老挝一级婬片A片AAA电影 |