Class KafkaProducerMessageHandlerSpec<K,V,S extends KafkaProducerMessageHandlerSpec<K,V,S>>
java.lang.Object
org.springframework.beans.factory.config.AbstractFactoryBean<T>
org.springframework.integration.dsl.IntegrationComponentSpec<S,H>
org.springframework.integration.dsl.MessageHandlerSpec<S,KafkaProducerMessageHandler<K,V>>
org.springframework.integration.kafka.dsl.KafkaProducerMessageHandlerSpec<K,V,S>
- Type Parameters:
K
- the key type.V
- the value type.S
- theKafkaProducerMessageHandlerSpec
extension type.
- All Implemented Interfaces:
org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanClassLoaderAware
,org.springframework.beans.factory.BeanFactoryAware
,org.springframework.beans.factory.DisposableBean
,org.springframework.beans.factory.FactoryBean<KafkaProducerMessageHandler<K,V>>
,org.springframework.beans.factory.InitializingBean
,org.springframework.context.Lifecycle
,org.springframework.context.Phased
,org.springframework.context.SmartLifecycle
- Direct Known Subclasses:
KafkaOutboundGatewaySpec
,KafkaProducerMessageHandlerSpec.KafkaProducerMessageHandlerTemplateSpec
public class KafkaProducerMessageHandlerSpec<K,V,S extends KafkaProducerMessageHandlerSpec<K,V,S>> extends org.springframework.integration.dsl.MessageHandlerSpec<S,KafkaProducerMessageHandler<K,V>>
A
MessageHandlerSpec
implementation for the KafkaProducerMessageHandler
.- Since:
- 5.4
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
KafkaProducerMessageHandlerSpec.KafkaProducerMessageHandlerTemplateSpec<K,V>
AKafkaTemplate
-basedKafkaProducerMessageHandlerSpec
extension. -
Field Summary
-
Method Summary
Modifier and Type Method Description <P> S
flush(java.util.function.Function<org.springframework.messaging.Message<P>,java.lang.Boolean> flushFunction)
Configure aFunction
that will be invoked at runtime to determine whether or not to flush the producer after a send.S
flushExpression(java.lang.String flushExpression)
Configure a SpEL expression to determine whether or not to flush the producer after a send.S
flushExpression(org.springframework.expression.Expression flushExpression)
Configure anExpression
to determine whether or not to flush the producer after a send.S
futuresChannel(java.lang.String futuresChannel)
Set the channel to which send futures are sent.S
futuresChannel(org.springframework.messaging.MessageChannel futuresChannel)
Set the channel to which send futures are sent.S
headerMapper(org.springframework.kafka.support.KafkaHeaderMapper mapper)
Specify a header mapper to map spring messaging headers to Kafka headers.S
messageKey(java.lang.String messageKey)
Configure the message key to store message in Kafka topic.<P> S
messageKey(java.util.function.Function<org.springframework.messaging.Message<P>,?> messageKeyFunction)
Configure aFunction
that will be invoked at runtime to determine the message key under which a message will be stored in the topic.S
messageKeyExpression(java.lang.String messageKeyExpression)
Configure a SpEL expression to determine the Kafka message key to store at runtime against request Message as a root object of evaluation context.S
messageKeyExpression(org.springframework.expression.Expression messageKeyExpression)
Configure anExpression
to determine the Kafka message key to store at runtime against request Message as a root object of evaluation context.S
partitionId(java.lang.Integer partitionId)
Configure a partitionId of Kafka topic.<P> S
partitionId(java.util.function.Function<org.springframework.messaging.Message<P>,java.lang.Integer> partitionIdFunction)
Configure aFunction
that will be invoked at runtime to determine the partition id under which a message will be stored in the topic.S
partitionIdExpression(java.lang.String partitionIdExpression)
Configure a SpEL expression to determine the topic partitionId at runtime against request Message as a root object of evaluation context.S
partitionIdExpression(org.springframework.expression.Expression partitionIdExpression)
Configure anExpression
to determine the topic partitionId at runtime against request Message as a root object of evaluation context.S
sendFailureChannel(java.lang.String sendFailureChannel)
Set the channel to which failed send results are sent.S
sendFailureChannel(org.springframework.messaging.MessageChannel sendFailureChannel)
Set the channel to which failed send results are sent.S
sendSuccessChannel(java.lang.String sendSuccessChannel)
Set the channel to which successful send results are sent.S
sendSuccessChannel(org.springframework.messaging.MessageChannel sendSuccessChannel)
Set the channel to which successful send results are sent.S
sendTimeout(long sendTimeout)
Specify a timeout in milliseconds how longKafkaProducerMessageHandler
should wait wait for send operation results.S
sync(boolean sync)
Aboolean
indicating if theKafkaProducerMessageHandler
should wait for the send operation results or not.<P> S
timestamp(java.util.function.Function<org.springframework.messaging.Message<P>,java.lang.Long> timestampFunction)
Configure aFunction
that will be invoked at runtime to determine the Kafka record timestamp will be stored in the topic.S
timestampExpression(java.lang.String timestampExpression)
Configure a SpEL expression to determine the timestamp at runtime against a request Message as a root object of evaluation context.S
timestampExpression(org.springframework.expression.Expression timestampExpression)
Configure anExpression
to determine the timestamp at runtime against a request Message as a root object of evaluation context.S
topic(java.lang.String topic)
Configure the Kafka topic to send messages.<P> S
topic(java.util.function.Function<org.springframework.messaging.Message<P>,java.lang.String> topicFunction)
Configure aFunction
that will be invoked at runtime to determine the topic to which a message will be sent.S
topicExpression(java.lang.String topicExpression)
Configure a SpEL expression to determine the Kafka topic at runtime against request Message as a root object of evaluation context.S
topicExpression(org.springframework.expression.Expression topicExpression)
Configure anExpression
to determine the Kafka topic at runtime against request Message as a root object of evaluation context.Methods inherited from class org.springframework.integration.dsl.IntegrationComponentSpec
_this, createInstance, destroyInstance, doGet, get, getId, getObjectType, getPhase, id, isAutoStartup, isRunning, start, stop, stop
-
Method Details
-
topic
Configure the Kafka topic to send messages.- Parameters:
topic
- the Kafka topic name.- Returns:
- the spec.
-
topicExpression
Configure a SpEL expression to determine the Kafka topic at runtime against request Message as a root object of evaluation context.- Parameters:
topicExpression
- the topic SpEL expression.- Returns:
- the spec.
-
topicExpression
Configure anExpression
to determine the Kafka topic at runtime against request Message as a root object of evaluation context.- Parameters:
topicExpression
- the topic expression.- Returns:
- the spec.
-
topic
public <P> S topic(java.util.function.Function<org.springframework.messaging.Message<P>,java.lang.String> topicFunction)Configure aFunction
that will be invoked at runtime to determine the topic to which a message will be sent. Typically used with a Java 8 Lambda expression:.<Foo>topic(m -> m.getPayload().getTopic())
- Type Parameters:
P
- the expected payload type.- Parameters:
topicFunction
- the topic function.- Returns:
- the current
KafkaProducerMessageHandlerSpec
. - See Also:
FunctionExpression
-
messageKeyExpression
Configure a SpEL expression to determine the Kafka message key to store at runtime against request Message as a root object of evaluation context.- Parameters:
messageKeyExpression
- the message key SpEL expression.- Returns:
- the spec.
-
messageKey
Configure the message key to store message in Kafka topic.- Parameters:
messageKey
- the message key to use.- Returns:
- the spec.
-
messageKeyExpression
Configure anExpression
to determine the Kafka message key to store at runtime against request Message as a root object of evaluation context.- Parameters:
messageKeyExpression
- the message key expression.- Returns:
- the spec.
-
messageKey
public <P> S messageKey(java.util.function.Function<org.springframework.messaging.Message<P>,?> messageKeyFunction)Configure aFunction
that will be invoked at runtime to determine the message key under which a message will be stored in the topic. Typically used with a Java 8 Lambda expression:.<Foo>messageKey(m -> m.getPayload().getKey())
- Type Parameters:
P
- the expected payload type.- Parameters:
messageKeyFunction
- the message key function.- Returns:
- the current
KafkaProducerMessageHandlerSpec
. - See Also:
FunctionExpression
-
partitionId
Configure a partitionId of Kafka topic.- Parameters:
partitionId
- the partitionId to use.- Returns:
- the spec.
-
partitionIdExpression
Configure a SpEL expression to determine the topic partitionId at runtime against request Message as a root object of evaluation context.- Parameters:
partitionIdExpression
- the partitionId expression to use.- Returns:
- the spec.
-
partitionId
public <P> S partitionId(java.util.function.Function<org.springframework.messaging.Message<P>,java.lang.Integer> partitionIdFunction)Configure aFunction
that will be invoked at runtime to determine the partition id under which a message will be stored in the topic. Typically used with a Java 8 Lambda expression:.partitionId(m -> m.getHeaders().get("partitionId", Integer.class))
- Type Parameters:
P
- the expected payload type.- Parameters:
partitionIdFunction
- the partitionId function.- Returns:
- the spec.
-
partitionIdExpression
Configure anExpression
to determine the topic partitionId at runtime against request Message as a root object of evaluation context.- Parameters:
partitionIdExpression
- the partitionId expression to use.- Returns:
- the spec.
-
timestampExpression
Configure a SpEL expression to determine the timestamp at runtime against a request Message as a root object of evaluation context.- Parameters:
timestampExpression
- the timestamp expression to use.- Returns:
- the spec.
-
timestamp
public <P> S timestamp(java.util.function.Function<org.springframework.messaging.Message<P>,java.lang.Long> timestampFunction)Configure aFunction
that will be invoked at runtime to determine the Kafka record timestamp will be stored in the topic. Typically used with a Java 8 Lambda expression:.timestamp(m -> m.getHeaders().get("mytimestamp_header", Long.class))
- Type Parameters:
P
- the expected payload type.- Parameters:
timestampFunction
- the timestamp function.- Returns:
- the spec.
-
timestampExpression
Configure anExpression
to determine the timestamp at runtime against a request Message as a root object of evaluation context.- Parameters:
timestampExpression
- the timestamp expression to use.- Returns:
- the spec.
-
flushExpression
Configure a SpEL expression to determine whether or not to flush the producer after a send. By default the producer is flushed if a headerkafka_flush
has a valueBoolean.TRUE
.- Parameters:
flushExpression
- the timestamp expression to use.- Returns:
- the spec.
-
flush
public <P> S flush(java.util.function.Function<org.springframework.messaging.Message<P>,java.lang.Boolean> flushFunction)Configure aFunction
that will be invoked at runtime to determine whether or not to flush the producer after a send. By default the producer is flushed if a headerkafka_flush
has a valueBoolean.TRUE
. Typically used with a Java 8 Lambda expression:.flush(m -> m.getPayload().shouldFlush())
- Type Parameters:
P
- the expected payload type.- Parameters:
flushFunction
- the flush function.- Returns:
- the spec.
-
flushExpression
Configure anExpression
to determine whether or not to flush the producer after a send. By default the producer is flushed if a headerkafka_flush
has a valueBoolean.TRUE
.- Parameters:
flushExpression
- the timestamp expression to use.- Returns:
- the spec.
-
sync
Aboolean
indicating if theKafkaProducerMessageHandler
should wait for the send operation results or not. Defaults tofalse
. Insync
mode a downstream send operation exception will be re-thrown.- Parameters:
sync
- the send mode; async by default.- Returns:
- the spec.
-
sendTimeout
Specify a timeout in milliseconds how longKafkaProducerMessageHandler
should wait wait for send operation results. Defaults to 10 seconds.- Parameters:
sendTimeout
- the timeout to wait for result fo send operation.- Returns:
- the spec.
-
headerMapper
Specify a header mapper to map spring messaging headers to Kafka headers.- Parameters:
mapper
- the mapper.- Returns:
- the spec.
-
sendSuccessChannel
Set the channel to which successful send results are sent.- Parameters:
sendSuccessChannel
- the channel.- Returns:
- the spec.
- Since:
- 3.0.2
-
sendSuccessChannel
Set the channel to which successful send results are sent.- Parameters:
sendSuccessChannel
- the channel name.- Returns:
- the spec.
- Since:
- 3.0.2
-
sendFailureChannel
Set the channel to which failed send results are sent.- Parameters:
sendFailureChannel
- the channel.- Returns:
- the spec.
- Since:
- 3.0.2
-
sendFailureChannel
Set the channel to which failed send results are sent.- Parameters:
sendFailureChannel
- the channel name.- Returns:
- the spec.
- Since:
- 3.0.2
-
futuresChannel
Set the channel to which send futures are sent.- Parameters:
futuresChannel
- the channel.- Returns:
- the spec.
- Since:
- 5.4
-
futuresChannel
Set the channel to which send futures are sent.- Parameters:
futuresChannel
- the channel name.- Returns:
- the spec.
- Since:
- 5.4
-