Spring Modulith 1.0 正式发布
Spring Modulith 1.0 从实验状态升级为完全支持的 Spring 项目。它通过约定和可选配置,使用模块和事件来构建 Spring Boot 3 应用程序。模块结构现在可以通过执行器在 Spring Tool Suite 和 Visual Studio Code 等 IDE 中可见。事件发布注册表(EPR)提高了事件完成的持久化速度,并引入了集成测试场景以简化事件测试。
模块化设计
Spring Modulith 模块的设计源于 Java 包的非层次性。默认情况下,主包的每个直接子包都是一个模块。模块的公共类型构成其 API,而子包被视为模块的内部部分,解决了公共子包对所有包可见的问题。
模块间通信
Spring Modulith 鼓励使用 Spring Framework 应用事件进行模块间通信。通过 EPR,Spring Modulith 增强了这些事件,确保事件传递。即使接收事件的模块或整个应用程序崩溃,注册表仍会在模块或应用程序再次运行时传递事件。
事件持久化与测试
EPR 支持使用 JPA、JDBC 和 MongoDB 存储事件。MongoDB 在此版本中增加了自动配置事务。Spring Modulith 允许应用程序同时使用模块和事件,或单独使用每个功能。新的 @ApplicationModuleListener 注解简化了异步事务事件监听器的配置。
集成测试场景
集成测试场景简化了异步事务代码的测试,允许定义事件驱动测试的起点和预期结果,并可以自定义执行细节和定义额外的事件测试。
jMolecules 集成
Spring Modulith 1.0 支持 jMolecules 注解,并生成按注解角色(如“端口”或“适配器”)分组应用程序文档。
未来展望
VMware 在 2023 年 8 月的 Spring One 上宣布了即将发布的 Spring Modulith 1.1,要求 Spring Boot 3.2。新版本将支持更多数据库(如 Neo4J)用于事件持久化,并自动将事件发送到外部目的地(如 Kafka、AMQP 和 Redis)。
社区反馈与成功标准
Spring Modulith 的主要推动者 Oliver Drotbohm 表示,社区反馈非常积极,成功将通过 Maven Central 下载数量、start.spring.io 使用情况和 GitHub 星标来衡量。Eclipse 通过 STS 插件支持,IntelliJ 支持正在开发中。
未来抽象概念
Spring Modulith 目前有两个核心抽象概念:模块和事件,未来版本将主要关注这两个部分的演进,以更好地服务于软件架构的“分解”和“整合”活动。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。