JMS (Java メッセージサービス)
Spring は、Spring の統合が JDBC API に対して行うのとほぼ同じ方法で JMS API の使用を簡素化する JMS 統合フレームワークを提供します。
JMS は、メッセージの生成と消費という 2 つの機能領域に大まかに分けられます。JmsTemplate
クラスは、メッセージの生成と同期メッセージ受信に使用されます。Jakarta EE のメッセージ駆動型 Bean スタイルに似た非同期受信の場合、Spring は、メッセージ駆動型 POJO (MDP) の作成に使用できるメッセージリスナーコンテナーを多数提供します。Spring は、メッセージリスナーを作成するための宣言的な方法も提供します。
org.springframework.jms.core
パッケージは、JMS を使用するためのコア機能を提供します。JDBC の JdbcTemplate
と同様に、リソースの作成と解放を処理することで JMS の使用を簡素化する JMS テンプレートクラスが含まれています。Spring テンプレートクラスに共通する設計原則は、一般的な操作を実行するヘルパーメソッドを提供し、より高度な使用のために、処理タスクの本質をユーザー実装のコールバックインターフェースに委譲することです。JMS テンプレートは同じ設計に従います。これらのクラスは、メッセージの送信、メッセージの同期消費、JMS セッションとメッセージプロデューサーのユーザーへの公開のためのさまざまな便利なメソッドを提供します。
org.springframework.jms.support
パッケージは、JMSException
変換機能を提供します。この変換により、チェックされた JMSException
階層が、チェックされていない例外のミラー化された階層に変換されます。チェックされた jakarta.jms.JMSException
のプロバイダー固有のサブクラスが存在する場合、この例外はチェックされていない UncategorizedJmsException
にラップされます。
org.springframework.jms.support.converter
パッケージは、Java オブジェクトと JMS メッセージ間で変換する MessageConverter
抽象化を提供します。
org.springframework.jms.support.destination
パッケージは、JNDI に格納されている宛先にサービスロケーターを提供するなど、JMS 宛先を管理するためのさまざまな戦略を提供します。
org.springframework.jms.annotation
パッケージは、@JmsListener
を使用して、アノテーション駆動型のリスナーエンドポイントをサポートするために必要なインフラストラクチャを提供します。
org.springframework.jms.config
パッケージは、jms
名前空間のパーサー実装と、リスナーコンテナーを構成し、リスナーエンドポイントを作成する java 構成サポートを提供します。
最後に、org.springframework.jms.connection
パッケージは、スタンドアロンアプリケーションでの使用に適した ConnectionFactory
の実装を提供します。また、JMS 用の Spring の PlatformTransactionManager
(巧妙に命名された JmsTransactionManager
)の実装も含まれています。これにより、Spring のトランザクション管理メカニズムへのトランザクションリソースとしての JMS のシームレスな統合が可能になります。
Spring Framework 5 以降、Spring の JMS パッケージは JMS 2.0 を完全にサポートし、実行時に JMS 2.0 API が存在する必要があります。JMS 2.0 互換プロバイダーの使用をお勧めします。 システムで古いメッセージブローカーを使用する場合は、既存のブローカー世代の JMS 2.0 互換ドライバーにアップグレードしてみてください。あるいは、JMS 1.1 ベースのドライバーに対して実行して、JMS 2.0 API jar をクラスパスに配置するだけで、ドライバーに対して JMS 1.1 互換 API のみを使用することもできます。Spring の JMS サポートは、デフォルトで JMS 1.1 規則に準拠しているため、対応する構成でこのようなシナリオをサポートします。ただし、これは移行シナリオでのみ考慮してください。 |