このバージョンはまだ開発中であり、まだ安定しているとは見なされていません。最新の安定バージョンについては、Spring Integration 6.4.3 を使用してください! |
受信ゲートウェイ
受信ゲートウェイは、受信チャネルアダプターのすべての属性( "channel" が "request-channel" に置き換えられることを除く)、およびいくつかの追加属性をサポートします。次のリストは、使用可能な属性を示しています。
Java DSL
Java
XML
@Bean // return the upper-cased payload
public IntegrationFlow amqpInboundGateway(ConnectionFactory connectionFactory) {
return IntegrationFlow.from(Amqp.inboundGateway(connectionFactory, "foo"))
.transform(String.class, String::toUpperCase)
.get();
}
@Bean
public MessageChannel amqpInputChannel() {
return new DirectChannel();
}
@Bean
public AmqpInboundGateway inbound(SimpleMessageListenerContainer listenerContainer,
@Qualifier("amqpInputChannel") MessageChannel channel) {
AmqpInboundGateway gateway = new AmqpInboundGateway(listenerContainer);
gateway.setRequestChannel(channel);
gateway.setDefaultReplyTo("bar");
return gateway;
}
@Bean
public SimpleMessageListenerContainer container(ConnectionFactory connectionFactory) {
SimpleMessageListenerContainer container =
new SimpleMessageListenerContainer(connectionFactory);
container.setQueueNames("foo");
container.setConcurrentConsumers(2);
// ...
return container;
}
@Bean
@ServiceActivator(inputChannel = "amqpInputChannel")
public MessageHandler handler() {
return new AbstractReplyProducingMessageHandler() {
@Override
protected Object handleRequestMessage(Message<?> requestMessage) {
return "reply to " + requestMessage.getPayload();
}
};
}
<int-amqp:inbound-gateway
id="inboundGateway" (1)
request-channel="myRequestChannel" (2)
header-mapper="" (3)
mapped-request-headers="" (4)
mapped-reply-headers="" (5)
reply-channel="myReplyChannel" (6)
reply-timeout="1000" (7)
amqp-template="" (8)
default-reply-to="" /> (9)
1 | このアダプターの固有 ID。オプション。 |
2 | 変換されたメッセージの送信先のメッセージチャネル。必須。 |
3 | AMQP メッセージを受信するときに使用する AmqpHeaderMapper への参照。オプション。デフォルトでは、標準の AMQP プロパティ(contentType など)のみが Spring Integration MessageHeaders との間でコピーされます。AMQP MessageProperties 内のユーザー定義ヘッダーは、デフォルト DefaultAmqpHeaderMapper によって AMQP メッセージとの間でコピーされません。"request-header-names" または "reply-header-names" が指定されている場合は許可されません。 |
4 | AMQP リクエストから MessageHeaders にマップされる AMQP ヘッダーの名前のコンマ区切りリスト。この属性は、"header-mapper" 参照が提供されていない場合にのみ提供できます。このリストの値は、ヘッダー名と照合する単純なパターンにすることもできます(例: "*" または "thing1*, thing2" または "*thing1" )。 |
5 | AMQP 応答メッセージの AMQP メッセージプロパティにマッピングされる MessageHeaders の名前のカンマ区切りリスト。すべての標準ヘッダー(contentType など)は AMQP メッセージプロパティにマップされますが、ユーザー定義ヘッダーは 'headers' プロパティにマップされます。この属性は、"header-mapper" 参照が提供されていない場合にのみ提供できます。このリストの値は、ヘッダー名(たとえば、"*" または "foo*, bar" または "*foo" など)と照合する単純なパターンにすることもできます。 |
6 | 返信メッセージが期待されるメッセージチャネル。オプション。 |
7 | 応答チャネルからメッセージを受信するために、基礎となる o.s.i.core.MessagingTemplate に receiveTimeout を設定します。指定しない場合、このプロパティのデフォルトは 1000 (1 秒)です。応答が送信される前にコンテナースレッドが別のスレッドに渡される場合にのみ適用されます。 |
8 | カスタマイズされた AmqpTemplate Bean 参照(送信する応答メッセージをさらに制御するため)。RabbitTemplate の代替実装を提供できます。 |
9 | replyTo requestMessage に replyTo プロパティがない場合に使用される o.s.amqp.core.Address 。このオプションが指定されていない場合、amqp-template は提供されず、replyTo プロパティはリクエストメッセージに存在せず、応答をルーティングできないために IllegalStateException がスローされます。このオプションが指定されておらず、外部 amqp-template が提供されている場合、例外はスローされません。リクエストメッセージに replyTo プロパティが存在しない場合が予想される場合は、このオプションを指定するか、そのテンプレートにデフォルトの exchange および routingKey を構成する必要があります。 |
listener-container
属性の構成については、受信チャネルアダプターの注を参照してください。
バージョン 5.5 以降、AmqpInboundChannelAdapter
は、再試行操作が内部で呼び出されたときに RecoveryCallback
で使用される org.springframework.amqp.rabbit.retry.MessageRecoverer
戦略を使用して構成できます。詳細については、setMessageRecoverer()
JavaDocs を参照してください。
バッチメッセージ
バッチメッセージを参照してください。