项目介绍:Spring Modulith
Spring Modulith 是一个帮助开发者构建组织良好的 Spring Boot 应用程序的工具。它不仅引导开发人员设计基于领域驱动的应用程序模块,还支持对这些模块化安排的验证、单个模块的集成测试、应用程序行为的模块化观察,以及基于模型创建文档片段。对于希望提高代码整洁度和模块化的开发者来说,Spring Modulith 提供了一套完善的支持。
快速入门
要使用 Spring Modulith,用户首先需要创建一个 Spring Boot 应用程序。这个过程可以通过访问 Spring 的官方网站(start.spring.io)来完成。接下来,需要将 Spring Modulith 添加到项目的 pom.xml
文件中。具体的依赖管理可以像下面这样设置:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.modulith</groupId>
<artifactId>spring-modulith-bom</artifactId>
<version>1.2.4</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.modulith</groupId>
<artifactId>spring-modulith-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
有了这些配置,下一步是创建一个 Java 包结构,将业务模块作为应用程序主包的直接子包。例如:
□ Example
└─ □ src/main/java
├─ □ example
| └─ Application.java
├─ □ example.inventory
| └─ …
└─ □ example.order
└─ …
在此配置中,example
是应用程序的根包,而 example.inventory
和 example.order
是具体的应用程序模块包。
接下来,开发者可以创建一个 ApplicationModules
模型,并运行验证过程,同时生成文档片段。这可以通过以下示例代码来实现:
class ApplicationTests {
@Test
void writeDocumentationSnippets() {
var modules = ApplicationModules.of(Application.class).verify();
new Documenter(modules)
.writeModulesAsPlantUml()
.writeIndividualModulesAsPlantUml();
}
}
在此过程中,ApplicationModules.of(Application.class).verify()
会创建应用模块模型并验证其结构,而 Documenter
则用于生成文档片段。
此外,还可以为单个应用程序模块运行集成测试。例如:
@ApplicationModuleTests
class OrderModuleIntegrationTests {
@Test
void someTestMethod() { … }
}
通过上述步骤,开发者可以确保应用程序模块化的正确性以及模块间交互的无误性。
参考文档
想要获得更详细的参考文档,用户可以查阅 Spring Modulith 的官方文档资源。
贡献指南
Spring Modulith 对所有 GitHub 上的贡献持开放态度。贡献者在提交 pull request 时,应遵循项目代码行为准则。此外,参与贡献者需要具备以下条件:
- Git
- Java 17 或更高版本
- Docker 1.6.0 或更高版本
通过运行以下命令获取源码:
git clone git@github.com:spring-projects/spring-modulith.git
cd spring-modulith
编译、测试和构建代码的命令如下:
./mvnw -B
许可证信息
Spring Modulith 是一个开源软件,根据 Apache 2.0 许可证发布。有关详细信息,开发者可以查看许可证文件。