附錄
附錄 A:Spring Modulith 設定屬性
屬性 | 預設值 | 描述 |
---|---|---|
|
|
是否設定非同步處理終止的預設值,即等待任務完成 2 秒。詳見 |
|
none |
用於偵測應用程式模組的策略。可以是 |
|
|
是否啟用事件外部化。 |
|
|
是否初始化 JDBC 事件發布綱要。 |
|
|
是否為 |
|
|
是否自動為 MongoDB 啟用交易。需要資料庫在副本集模式下執行。 |
|
|
是否在 . 上建立索引。 |
|
|
是否為 |
|
|
是否啟用 |
|
|
要發布的事件的粒度。( |
|
|
用於決定週界限的 |
|
|
發布事件的日期的時區。 |
|
|
是否在應用程式重新啟動時重新發布未完成的事件發布。通常不建議在多實例部署中使用,因為其他實例可能仍在處理事件。 |
附錄 B:Spring Modulith 模組
Starter | 典型範疇 | 包含 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
模組 | 典型範疇 | 描述 |
---|---|---|
|
|
Spring Boot actuator,用於透過 actuator 公開應用程式模組結構。 |
|
|
在您的生產程式碼中使用的抽象,用於自訂 Spring Modulith 的預設行為。 |
|
|
核心應用程式模組模型和 API。 |
|
|
|
|
|
AMQP 的事件外部化支援。 |
|
|
用於自訂 Spring Modulith 事件功能的 API。 |
|
|
事件發布註冊表的核心實作,以及整合抽象 |
|
|
|
|
|
|
|
|
JMS 的事件外部化支援。 |
|
|
|
|
|
Kafka 的事件外部化支援。 |
|
|
|
|
|
|
|
|
基於應用程式模組結構的測試執行最佳化。在此處找到更多詳細資訊。 |
|
|
在此處描述的時間事件 Passage of Time 實作。 |
|
|
在此處描述的可觀察性基礎架構。 |
|
|
在執行時期啟動 |
|
|
整合測試支援。在此處找到更多詳細資訊。 |
附錄 C:事件發布註冊表綱要
JDBC 基礎的事件發布註冊表支援預期資料庫中存在以下資料庫綱要。如果您希望 Spring Modulith 為您建立綱要,請將應用程式屬性 spring.modulith.events.jdbc-schema-initialization.enabled
設定為 true
。
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.ApplicationModules
-
o.m.model.ModuleDetectionStrategy
已重新命名為o.s.m.model.ApplicationModuleDetectionStrategy
-
@o.m.test.ModuleTest
已重新命名為@o.s.m.test.ApplicationModuleTest
-
o.m.docs.Documenter.Options
已重新命名為o.s.m.docs.Documenter.DiagramOptions
-
元件圖的圖表樣式現在預設為
DiagramStyle.C4
(透過呼叫DiagramOptions.withStyle(DiagramStyle.UML)
覆寫) -
模組畫布預設會隱藏未公開的類型。若要在畫布中包含應用程式模組內部類型,請將
CanvasOptions
設定為….revealInternals()
。 -
元件圖和應用程式模組畫布的輸出資料夾已從
moduliths-docs
移至spring-modulith-docs
,位於組建目標資料夾中(例如 Maven 的target
)。