附录 A:Spring Shell配置属性

财产 默认值 描述

spring.modulith.default-async-terminationSpring中文文档

trueSpring中文文档

是否为异步处理终止配置默认值,即等待任务完成 2 秒。有关详细信息,请参阅。TaskExecutionPropertiesSpring中文文档

spring.modulith.detection-strategySpring中文文档

没有Spring中文文档

应用于检测应用程序模块的策略。 可以是 or 的自定义实现的类名(如果未配置任何内容,这也是最终的回退),也可以仅选择显式使用 或 jMolecules 注释的包。有关详细信息,请参阅自定义应用程序模块检测ApplicationModuleDetectionStrategydirect-subpackagesexplicitly-annotated@ApplicationModule@ModuleSpring中文文档

spring.modulith.events.externalization.enabledSpring中文文档

trueSpring中文文档

是否启用事件外部化。Spring中文文档

spring.modulith.events.jdbc.schema-initialization.enabledSpring中文文档

falseSpring中文文档

是否初始化 JDBC 事件发布模式。Spring中文文档

spring.modulith.events.kafka.enable-jsonSpring中文文档

trueSpring中文文档

是否启用 JSON 支持。KafkaTemplateSpring中文文档

spring.modulith.events.mongodb.transaction-management.enabledSpring中文文档

trueSpring中文文档

是否自动启用 MongoDB 事务。要求使用副本集运行数据库。Spring中文文档

spring.modulith.events.neo4j.event-index.enabledSpring中文文档

falseSpring中文文档

是否在 .Spring中文文档

spring.modulith.events.rabbitmq.enable-jsonSpring中文文档

trueSpring中文文档

是否启用 JSON 支持。RabbitTemplateSpring中文文档

spring.modulith.moments.enableTimeMachineSpring中文文档

falseSpring中文文档

是否开启 TimeMachine.Spring中文文档

spring.modulith.moments.granularitySpring中文文档

HOURSSpring中文文档

要发布的事件的粒度。(,HOURSDAYS)Spring中文文档

spring.modulith.moments.localeSpring中文文档

Locale.getDefault()Spring中文文档

确定周边界时使用的 to。LocaleSpring中文文档

spring.modulith.moments.zoneIdSpring中文文档

ZoneOffset.UTCSpring中文文档

要发布事件的日期的时区。Spring中文文档

spring.modulith.republish-outstanding-events-on-restartSpring中文文档

falseSpring中文文档

是否在重新启动应用程序时重新发布未完成的事件发布。Spring中文文档

财产 默认值 描述

spring.modulith.default-async-terminationSpring中文文档

trueSpring中文文档

是否为异步处理终止配置默认值,即等待任务完成 2 秒。有关详细信息,请参阅。TaskExecutionPropertiesSpring中文文档

spring.modulith.detection-strategySpring中文文档

没有Spring中文文档

应用于检测应用程序模块的策略。 可以是 or 的自定义实现的类名(如果未配置任何内容,这也是最终的回退),也可以仅选择显式使用 或 jMolecules 注释的包。有关详细信息,请参阅自定义应用程序模块检测ApplicationModuleDetectionStrategydirect-subpackagesexplicitly-annotated@ApplicationModule@ModuleSpring中文文档

spring.modulith.events.externalization.enabledSpring中文文档

trueSpring中文文档

是否启用事件外部化。Spring中文文档

spring.modulith.events.jdbc.schema-initialization.enabledSpring中文文档

falseSpring中文文档

是否初始化 JDBC 事件发布模式。Spring中文文档

spring.modulith.events.kafka.enable-jsonSpring中文文档

trueSpring中文文档

是否启用 JSON 支持。KafkaTemplateSpring中文文档

spring.modulith.events.mongodb.transaction-management.enabledSpring中文文档

trueSpring中文文档

是否自动启用 MongoDB 事务。要求使用副本集运行数据库。Spring中文文档

spring.modulith.events.neo4j.event-index.enabledSpring中文文档

falseSpring中文文档

是否在 .Spring中文文档

spring.modulith.events.rabbitmq.enable-jsonSpring中文文档

trueSpring中文文档

是否启用 JSON 支持。RabbitTemplateSpring中文文档

spring.modulith.moments.enableTimeMachineSpring中文文档

falseSpring中文文档

是否开启 TimeMachine.Spring中文文档

spring.modulith.moments.granularitySpring中文文档

HOURSSpring中文文档

要发布的事件的粒度。(,HOURSDAYS)Spring中文文档

spring.modulith.moments.localeSpring中文文档

Locale.getDefault()Spring中文文档

确定周边界时使用的 to。LocaleSpring中文文档

spring.modulith.moments.zoneIdSpring中文文档

ZoneOffset.UTCSpring中文文档

要发布事件的日期的时区。Spring中文文档

spring.modulith.republish-outstanding-events-on-restartSpring中文文档

falseSpring中文文档

是否在重新启动应用程序时重新发布未完成的事件发布。Spring中文文档

附录 B:Spring Shell模块

表 1.Spring Shell起动机 POM
起动机 典型范围 包括

spring-modulith-starter-coreSpring中文文档

compileSpring中文文档

spring-modulith-starter-insightSpring中文文档

runtimeSpring中文文档

spring-modulith-starter-jdbcSpring中文文档

compileSpring中文文档

spring-modulith-starter-jpaSpring中文文档

compileSpring中文文档

spring-modulith-starter-mongodbSpring中文文档

compileSpring中文文档

spring-modulith-starter-neo4jSpring中文文档

compileSpring中文文档

spring-modulith-starter-testSpring中文文档

testSpring中文文档

表 2.单个Spring Shell JAR
模块 典型范围 描述

spring-modulith-actuatorSpring中文文档

runtimeSpring中文文档

一个 Spring Boot 执行器,用于通过执行器公开应用程序模块结构。Spring中文文档

spring-modulith-apiSpring中文文档

compileSpring中文文档

在生产代码中使用的抽象,用于自定义 Spring Modolith 的默认行为。Spring中文文档

spring-modulith-coreSpring中文文档

runtimeSpring中文文档

核心应用模块模型和 API。Spring中文文档

spring-modulith-docsSpring中文文档

testSpring中文文档

用于从模块模型创建 Asciidoctor 和 PlantUML 文档的 API。DocumenterSpring中文文档

spring-modulith-events-amqpSpring中文文档

runtimeSpring中文文档

对 AMQP 的事件外部化支持。Spring中文文档

spring-modulith-events-apiSpring中文文档

runtimeSpring中文文档

自定义 Spring Modolith 事件特性的 API。Spring中文文档

spring-modulith-events-coreSpring中文文档

runtimeSpring中文文档

事件发布注册表的核心实现以及集成抽象和 .EventPublicationRegistryEventPublicationSerializerSpring中文文档

spring-modulith-events-jacksonSpring中文文档

runtimeSpring中文文档

基于 Jackson 的 .EventPublicationSerializerSpring中文文档

spring-modulith-events-jdbcSpring中文文档

runtimeSpring中文文档

基于 JDBC 的 .EventPublicationRegistrySpring中文文档

spring-modulith-events-jmsSpring中文文档

runtimeSpring中文文档

对 JMS 的事件外部化支持。Spring中文文档

spring-modulith-events-jpaSpring中文文档

runtimeSpring中文文档

基于 JPA 的 .EventPublicationRegistrySpring中文文档

spring-modulith-events-kafkaSpring中文文档

runtimeSpring中文文档

对 Kafka 的事件外部化支持。Spring中文文档

spring-modulith-events-mongodbSpring中文文档

runtimeSpring中文文档

基于 MongoDB 的 .EventPublicationRegistrySpring中文文档

spring-modulith-events-neo4jSpring中文文档

runtimeSpring中文文档

基于 Neo4j 的 .EventPublicationRegistrySpring中文文档

spring-modulith-momentsSpring中文文档

compileSpring中文文档

此处描述的 Passage of Time 事件实现。Spring中文文档

spring-modulith-runtimeSpring中文文档

runtimeSpring中文文档

支持在运行时引导实例。通常不直接依赖于 和 而是传递使用 。ApplicationModulesspring-modulith-actuatorspring-modulith-observabilitySpring中文文档

spring-modulith-observabilitySpring中文文档

runtimeSpring中文文档

此处介绍的可观测性基础结构。Spring中文文档

表 1.Spring Shell起动机 POM
起动机 典型范围 包括

spring-modulith-starter-coreSpring中文文档

compileSpring中文文档

spring-modulith-starter-insightSpring中文文档

runtimeSpring中文文档

spring-modulith-starter-jdbcSpring中文文档

compileSpring中文文档

spring-modulith-starter-jpaSpring中文文档

compileSpring中文文档

spring-modulith-starter-mongodbSpring中文文档

compileSpring中文文档

spring-modulith-starter-neo4jSpring中文文档

compileSpring中文文档

spring-modulith-starter-testSpring中文文档

testSpring中文文档

表 2.单个Spring Shell JAR
模块 典型范围 描述

spring-modulith-actuatorSpring中文文档

runtimeSpring中文文档

一个 Spring Boot 执行器,用于通过执行器公开应用程序模块结构。Spring中文文档

spring-modulith-apiSpring中文文档

compileSpring中文文档

在生产代码中使用的抽象,用于自定义 Spring Modolith 的默认行为。Spring中文文档

spring-modulith-coreSpring中文文档

runtimeSpring中文文档

核心应用模块模型和 API。Spring中文文档

spring-modulith-docsSpring中文文档

testSpring中文文档

用于从模块模型创建 Asciidoctor 和 PlantUML 文档的 API。DocumenterSpring中文文档

spring-modulith-events-amqpSpring中文文档

runtimeSpring中文文档

对 AMQP 的事件外部化支持。Spring中文文档

spring-modulith-events-apiSpring中文文档

runtimeSpring中文文档

自定义 Spring Modolith 事件特性的 API。Spring中文文档

spring-modulith-events-coreSpring中文文档

runtimeSpring中文文档

事件发布注册表的核心实现以及集成抽象和 .EventPublicationRegistryEventPublicationSerializerSpring中文文档

spring-modulith-events-jacksonSpring中文文档

runtimeSpring中文文档

基于 Jackson 的 .EventPublicationSerializerSpring中文文档

spring-modulith-events-jdbcSpring中文文档

runtimeSpring中文文档

基于 JDBC 的 .EventPublicationRegistrySpring中文文档

spring-modulith-events-jmsSpring中文文档

runtimeSpring中文文档

对 JMS 的事件外部化支持。Spring中文文档

spring-modulith-events-jpaSpring中文文档

runtimeSpring中文文档

基于 JPA 的 .EventPublicationRegistrySpring中文文档

spring-modulith-events-kafkaSpring中文文档

runtimeSpring中文文档

对 Kafka 的事件外部化支持。Spring中文文档

spring-modulith-events-mongodbSpring中文文档

runtimeSpring中文文档

基于 MongoDB 的 .EventPublicationRegistrySpring中文文档

spring-modulith-events-neo4jSpring中文文档

runtimeSpring中文文档

基于 Neo4j 的 .EventPublicationRegistrySpring中文文档

spring-modulith-momentsSpring中文文档

compileSpring中文文档

此处描述的 Passage of Time 事件实现。Spring中文文档

spring-modulith-runtimeSpring中文文档

runtimeSpring中文文档

支持在运行时引导实例。通常不直接依赖于 和 而是传递使用 。ApplicationModulesspring-modulith-actuatorspring-modulith-observabilitySpring中文文档

spring-modulith-observabilitySpring中文文档

runtimeSpring中文文档

此处介绍的可观测性基础结构。Spring中文文档

附录 C:事件发布注册表架构

基于 JDBC 的事件发布注册表支持要求数据库中存在以下数据库模式。 如果希望 Spring Modulith 为您创建架构,请将 application 属性设置为 。spring.modulith.events.jdbc-schema-initialization.enabledtrueSpring中文文档

H2型

CREATE TABLE IF NOT EXISTS EVENT_PUBLICATION
(
  ID               UUID NOT NULL,
  COMPLETION_DATE  TIMESTAMP(9) WITH TIME ZONE,
  EVENT_TYPE       VARCHAR(512) NOT NULL,
  LISTENER_ID      VARCHAR(512) NOT NULL,
  PUBLICATION_DATE TIMESTAMP(9) WITH TIME ZONE NOT NULL,
  SERIALIZED_EVENT VARCHAR(4000) NOT NULL,
  PRIMARY KEY (ID)
);
CREATE INDEX IF NOT EXISTS EVENT_PUBLICATION_BY_LISTENER_ID_AND_SERIALIZED_EVENT_IDX ON EVENT_PUBLICATION (LISTENER_ID, SERIALIZED_EVENT);
CREATE INDEX IF NOT EXISTS EVENT_PUBLICATION_BY_COMPLETION_DATE_IDX ON EVENT_PUBLICATION (COMPLETION_DATE);

HSQLDB数据库

CREATE TABLE IF NOT EXISTS EVENT_PUBLICATION
(
  ID               UUID NOT NULL,
  COMPLETION_DATE  TIMESTAMP(9),
  EVENT_TYPE       VARCHAR(512) NOT NULL,
  LISTENER_ID      VARCHAR(512) NOT NULL,
  PUBLICATION_DATE TIMESTAMP(9) NOT NULL,
  SERIALIZED_EVENT VARCHAR(4000) NOT NULL,
  PRIMARY KEY (ID)
);
CREATE INDEX IF NOT EXISTS EVENT_PUBLICATION_BY_LISTENER_ID_AND_SERIALIZED_EVENT_IDX ON EVENT_PUBLICATION (LISTENER_ID, SERIALIZED_EVENT);
CREATE INDEX IF NOT EXISTS EVENT_PUBLICATION_BY_COMPLETION_DATE_IDX ON EVENT_PUBLICATION (COMPLETION_DATE);

MySQL的

CREATE TABLE IF NOT EXISTS EVENT_PUBLICATION
(
  ID               VARCHAR(36) NOT NULL,
  LISTENER_ID      VARCHAR(512) NOT NULL,
  EVENT_TYPE       VARCHAR(512) NOT NULL,
  SERIALIZED_EVENT VARCHAR(4000) NOT NULL,
  PUBLICATION_DATE TIMESTAMP(6) NOT NULL,
  COMPLETION_DATE  TIMESTAMP(6) DEFAULT NULL NULL,
  PRIMARY KEY (ID),
  INDEX EVENT_PUBLICATION_BY_COMPLETION_DATE_IDX (COMPLETION_DATE)
);

PostgreSQL的

CREATE TABLE IF NOT EXISTS event_publication
(
  id               UUID NOT NULL,
  listener_id      TEXT NOT NULL,
  event_type       TEXT NOT NULL,
  serialized_event TEXT NOT NULL,
  publication_date TIMESTAMP WITH TIME ZONE NOT NULL,
  completion_date  TIMESTAMP WITH TIME ZONE,
  PRIMARY KEY (id)
);
CREATE INDEX IF NOT EXISTS event_publication_serialized_event_hash_idx ON event_publication USING hash(serialized_event);
CREATE INDEX IF NOT EXISTS event_publication_by_completion_date_idx ON event_publication (completion_date);

附录 D:从 Moduliths 迁移

  • o.m.model.Modules已重命名为o.s.m.model.ApplicationModulesSpring中文文档

  • o.m.model.ModuleDetectionStrategy已重命名为o.s.m.model.ApplicationModuleDetectionStrategySpring中文文档

  • @o.m.test.ModuleTest已重命名为@o.s.m.test.ApplicationModuleTestSpring中文文档

  • o.m.docs.Documenter.Options已重命名为o.s.m.docs.Documenter.DiagramOptionsSpring中文文档

  • 组件图的图样式现在默认为 (通过调用重写DiagramStyle.C4DiagramOptions.withStyle(DiagramStyle.UML))Spring中文文档

  • 默认情况下,模块画布隐藏非公开类型。 若要在画布中包含 application-module-internal 类型,请配置为 。CanvasOptions….revealInternals()Spring中文文档

  • 组件关系图和应用程序模块画布的输出文件夹已从生成的目标文件夹(例如 Maven)移至位于该文件夹中。moduliths-docsspring-modulith-docstargetSpring中文文档