Spring ModulithSpring Modulith2.1.0

Spring Modulith allows developers to build well-structured Spring Boot applications and guides developers in finding and working with application modules driven by the domain. It supports the verification of such modular arrangements, integration testing individual modules, observing the application’s behavior on the module level and creating documentation snippets based on the arrangement created.

Quickstart

  1. Create a Spring Boot application on https://start.spring.io

  2. Create a Java package arrangement that puts business modules as direct sub-packages of the application’s main package.

    しろいしかく Example
    └─ しろいしかく src/main/java
     ├─ しろいしかく example <1>
     │ └─ Application.java
     ├─ しろいしかく example.inventory <2>
     │ └─ ...
     └─ しろいしかく example.order <2>
     └─ ...
    
    1. The application root package

    2. Application module packages

  3. Create an ApplicationModules model, run verifications and create documentation snippets.

    class ApplicationTests {
     @Test
     void writeDocumentationSnippets() {
     var modules = ApplicationModules.of(Application.class).verify(); (1)
     new Documenter(modules) (2)
     .writeModulesAsPlantUml()
     .writeIndividualModulesAsPlantUml();
     }
    }
    
    1. Creates application module model and verifies its structure.

    2. Renders Asciidoctor snippets (component diagrams, application module canvas) to target/modulith-docs.

  4. Run integration tests for individual application modules.

    しろいしかく Example
    └─ しろいしかく src/test/java
     └─ しろいしかく example.order
     └─ OrderModuleIntegrationTests.java
    @ApplicationModuleTests
    class OrderModuleIntegrationTests {
     @Test
     void someTestMethod() { ... }
    }
    
Spring Initializr

Quickstart Your Project

Bootstrap your application with Spring Initializr.

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDKTM, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all