すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for RocketMQ:Spring との連携

最終更新日:Mar 11, 2026

Spring または Spring Boot アプリケーション内で、ApsaraMQ for RocketMQ SDK for Java を使用してメッセージを送信および受信します。

ApsaraMQ for RocketMQ では、ons-client SDK を Spring 管理 Bean に統合するデモプロジェクトを提供しています。これにより、依存関係の注入(DI)が可能なプロデューサーおよびコンシューマーコンポーネントをすぐに利用できます。本ガイドでは、Spring Boot デモを手順に沿って説明します。通常の Spring デモも同様のパターンに従います。

サポートされるメッセージタイプ

Spring 連携機能では、以下のメッセージタイプに対応したプロデューサーおよびコンシューマーが利用可能です:

  • 通常メッセージ

  • 順序付きメッセージ

  • トランザクションメッセージ

説明

Spring 連携機能では、スケジュールされたメッセージおよび遅延メッセージはサポートされていません。

前提条件

開始する前に、以下の環境が整っていることを確認してください。

ステップ 1:デモプロジェクトのダウンロード

GitHub から以下のいずれかのデモプロジェクトをクローンまたはダウンロードします。

デモリポジトリ
Spring Boot(本ガイドで使用)java-springboot-demo
Springjava-spring-demo

ステップ 2:リソースの作成

ApsaraMQ for RocketMQコンソールで、以下のリソースを作成します。

  1. インスタンスの作成を行います。

  2. トピックの作成を行います。送信予定のメッセージタイプに合わせてメッセージタイプを設定します。たとえば、通常メッセージの場合は 通常 を、順序付きメッセージの場合は 順序付き を選択します。

  3. グループの作成を行います。ons-client SDK は TCP を介して通信するため、プロトコルタイプとして TCP を選択します。

  4. インスタンスの TCP エンドポイントの取得を行います。

ステップ 3:デモプロジェクトの設定

IntelliJ IDEA でデモプロジェクトを開き、Maven の依存関係およびアプリケーションプロパティを更新します。

ons-client 依存関係の追加

次の依存関係を pom.xml に追加します。ons-client のバージョンは、最新の利用可能バージョンに置き換えてください。バージョン履歴については、「リリースノート」をご参照ください。

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>com.aliyun.openservices</groupId>
        <artifactId>ons-client</artifactId>
        <!-- 最新バージョンに置き換えてください -->
        <version>1.8.8.8.Final</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

アプリケーションプロパティの設定

java-springboot-demo/src/main/resources/application.properties を、ステップ 2 で取得したリソース情報を使用して編集します。

パラメーター

説明

accessKey

認証用の AccessKey ID

<your-access-key-id>

secretKey

認証用の AccessKey Secret

<your-access-key-secret>

nameSrvAddr

ApsaraMQ for RocketMQ インスタンスの TCP エンドポイント

http://MQ_INST_XXXXXX.cn-hangzhou.mq.aliyuncs.com:80

topic

通常メッセージ用のトピック名

noamal_topic

groupId

コンシューマー用のグループ ID

GID_test

tag

タグフィルター式。すべてのメッセージをサブスクライブするには * を使用し、または TagA || TagB のように特定のタグを指定します。詳細については、「メッセージフィルタリング」をご参照ください。

*

orderTopic

順序付きメッセージ用のトピック名

order_topic

orderGroupId

順序付きメッセージ用コンシューマーのグループ ID

GID_order

orderTag

順序付きメッセージ用のタグフィルター式

tagA

ステップ 4:デモの実行

java-springboot-demo/src/main/java/com/aliyun/openservices/springboot/example 配下のクラスがプロジェクトに正しくインポートされていることを確認し、main() メソッドを実行します。

サンプルコードのリファレンス

デモには、各サポート対象メッセージタイプ向けのプロデューサーおよびコンシューマーが含まれています。すべてのソースコードは GitHub 上で公開されています。

通常メッセージ

役割クラス
プロデューサーProducerClient.java
同期送信SyncProducerTest.java
非同期送信AsyncProducerTest.java
コンシューマー(タグベースのフィルタリング)ConsumerClient.java
コンシューマー(SQL ベースのフィルタリング)SqlConsumerClient.java

順序付きメッセージ

役割クラス
プロデューサーOrderProducerClient.java
コンシューマーOrderConsumerClient.java

トランザクションメッセージ

役割クラス
プロデューサーTransactionProducerClient.java
コンシューマーConsumerClient.java

次のステップ