付録
付録 A: Spring Modulith 構成プロパティ
プロパティ | デフォルト値 | 説明 |
---|---|---|
|
| 非同期処理の終了のデフォルトを構成するかどうか、つまりタスクの補完を 2 秒間待機するかどうか。詳細については、 |
| なし | アプリケーションモジュールを検出するために適用される戦略。 |
|
| イベントの外部化を有効にするかどうか。 |
|
| JDBC イベント発行スキーマを初期化するかどうか。 |
|
|
|
|
| MongoDB のトランザクションを自動的に有効にするかどうか。データベースをレプリカセットで実行する必要があります。 |
|
| インデックスを作成するかどうか。 |
|
|
|
|
|
|
|
| 発行するイベントの粒度。( |
|
| 週の境界を決定するときに使用する |
|
| 公開されるイベントの日付のタイムゾーン。 |
|
| アプリケーションの再起動時に未処理のイベントパブリケーションを再公開するかどうか。 |
付録 B: Spring Modulith モジュール
スターター | 一般的な範囲 | インクルード |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
モジュール | 一般的な範囲 | 説明 |
---|---|---|
|
| アクチュエーターを介してアプリケーションモジュール構造を公開する Spring Boot アクチュエーター。 |
|
| Spring Modulith のデフォルト動作をカスタマイズするために本番コードで使用される抽象化。 |
|
| コアアプリケーションモジュールモデルと API。 |
|
|
|
|
| AMQP のイベント外部化サポート。 |
|
| Spring Modulith のイベント機能をカスタマイズするための API。 |
|
| イベント発行レジストリのコア実装と統合抽象化 |
|
| Jackson ベースの |
|
|
|
|
| JMS のイベント外部化のサポート。 |
|
|
|
|
| Kafka のイベント外部化のサポート。 |
|
| MongoDB ベースの |
|
|
|
|
| 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: モジュリスからの移行
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)
を呼び出してオーバーライドする)モジュールキャンバスは、デフォルトで非公開型を非表示にします。キャンバスに application-module-internal 型を含めるには、
CanvasOptions
を… .revealInternals()
に構成します。コンポーネント図とアプリケーションモジュールキャンバスの出力フォルダーは、ビルドのターゲットフォルダー (Maven の
target
など) にあるmoduliths-docs
からspring-modulith-docs
に移動しました。