Class KafkaProducerMessageHandlerSpec<K, V, S extends KafkaProducerMessageHandlerSpec<K,V,S>>
java.lang.Object
org.springframework.integration.dsl.IntegrationComponentSpec<S, KafkaProducerMessageHandler<K,V>>
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- theKafkaProducerMessageHandlerSpecextension type.
- All Implemented Interfaces:
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 ClassesModifier and TypeClassDescriptionstatic classAKafkaTemplate-basedKafkaProducerMessageHandlerSpecextension. -
Field Summary
Fields inherited from class org.springframework.integration.dsl.IntegrationComponentSpec
logger, PARSER, targetFields inherited from interface org.springframework.beans.factory.FactoryBean
OBJECT_TYPE_ATTRIBUTEFields inherited from interface org.springframework.context.SmartLifecycle
DEFAULT_PHASE -
Method Summary
Modifier and TypeMethodDescription<P> SConfigure aFunctionthat will be invoked at runtime to determine whether to flush the producer after send.flushExpression(String flushExpression) Configure a SpEL expression to determine whether to flush the producer after a send.flushExpression(org.springframework.expression.Expression flushExpression) Configure anExpressionto determine whether to flush the producer after a send.futuresChannel(String futuresChannel) Set the channel to which send futures are sent.futuresChannel(org.springframework.messaging.MessageChannel futuresChannel) Set the channel to which send futures are sent.headerMapper(org.springframework.kafka.support.KafkaHeaderMapper mapper) Specify a header mapper to map spring messaging headers to Kafka headers.messageKey(String messageKey) Configure the message key to store message in Kafka topic.<P> SmessageKey(Function<org.springframework.messaging.Message<P>, ?> messageKeyFunction) Configure aFunctionthat will be invoked at runtime to determine the message key under which a message will be stored in the topic.messageKeyExpression(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.messageKeyExpression(org.springframework.expression.Expression messageKeyExpression) Configure anExpressionto determine the Kafka message key to store at runtime against request Message as a root object of evaluation context.partitionId(Integer partitionId) Configure a partitionId of Kafka topic.<P> SpartitionId(Function<org.springframework.messaging.Message<P>, Integer> partitionIdFunction) Configure aFunctionthat will be invoked at runtime to determine the partition id under which a message will be stored in the topic.partitionIdExpression(String partitionIdExpression) Configure a SpEL expression to determine the topic partitionId at runtime against request Message as a root object of evaluation context.partitionIdExpression(org.springframework.expression.Expression partitionIdExpression) Configure anExpressionto determine the topic partitionId at runtime against request Message as a root object of evaluation context.Set aKafkaProducerMessageHandler.ProducerRecordCreatorto create theProducerRecord.sendFailureChannel(String sendFailureChannel) Set the channel to which failed send results are sent.sendFailureChannel(org.springframework.messaging.MessageChannel sendFailureChannel) Set the channel to which failed send results are sent.sendSuccessChannel(String sendSuccessChannel) Set the channel to which successful send results are sent.sendSuccessChannel(org.springframework.messaging.MessageChannel sendSuccessChannel) Set the channel to which successful send results are sent.sendTimeout(long sendTimeout) Specify a timeout in milliseconds how longKafkaProducerMessageHandlershould wait for send operation results.sync(boolean sync) Abooleanindicating if theKafkaProducerMessageHandlershould wait for the send operation results or not.<P> SConfigure aFunctionthat will be invoked at runtime to determine the Kafka record timestamp will be stored in the topic.timestampExpression(String timestampExpression) Configure a SpEL expression to determine the timestamp at runtime against a request Message as a root object of evaluation context.timestampExpression(org.springframework.expression.Expression timestampExpression) Configure anExpressionto determine the timestamp at runtime against a request Message as a root object of evaluation context.Configure the Kafka topic to send messages.<P> SConfigure aFunctionthat will be invoked at runtime to determine the topic to which a message will be sent.topicExpression(String topicExpression) Configure a SpEL expression to determine the Kafka topic at runtime against request Message as a root object of evaluation context.topicExpression(org.springframework.expression.Expression topicExpression) Configure anExpressionto determine the Kafka topic at runtime against request Message as a root object of evaluation context.useTemplateConverter(boolean use) Set to true to use the template's message converter to create theProducerRecordinstead of theproducerRecordCreator.Methods inherited from class org.springframework.integration.dsl.IntegrationComponentSpec
_this, afterPropertiesSet, destroy, doGet, getId, getObject, getObjectType, getPhase, id, isAutoStartup, isRunning, start, stop, stopMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.beans.factory.FactoryBean
isSingletonMethods inherited from interface org.springframework.context.SmartLifecycle
isPauseable
-
Method Details
-
topic
-
topicExpression
-
topicExpression
Configure anExpressionto 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
Configure aFunctionthat 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:
-
messageKeyExpression
-
messageKey
-
messageKeyExpression
Configure anExpressionto 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
Configure aFunctionthat 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:
-
partitionId
-
partitionIdExpression
-
partitionId
public <P> S partitionId(Function<org.springframework.messaging.Message<P>, Integer> partitionIdFunction) Configure aFunctionthat 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 anExpressionto 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
-
timestamp
Configure aFunctionthat 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 anExpressionto 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 to flush the producer after a send. By default, the producer is flushed if a headerkafka_flushhas a valueBoolean.TRUE.- Parameters:
flushExpression- the timestamp expression to use.- Returns:
- the spec.
-
flush
Configure aFunctionthat will be invoked at runtime to determine whether to flush the producer after send. By default, the producer is flushed if a headerkafka_flushhas a valueBoolean.TRUE. Typically, used with a Java Lambda expression:.flush(m -> m.getPayload().shouldFlush())- Type Parameters:
P- the expected payload type.- Parameters:
flushFunction- the flush function.- Returns:
- the spec.
-
flushExpression
Configure anExpressionto determine whether to flush the producer after a send. By default, the producer is flushed if a headerkafka_flushhas a valueBoolean.TRUE.- Parameters:
flushExpression- the timestamp expression to use.- Returns:
- the spec.
-
sync
Abooleanindicating if theKafkaProducerMessageHandlershould wait for the send operation results or not. Defaults tofalse. Insyncmode 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 longKafkaProducerMessageHandlershould 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.
-
sendSuccessChannel
-
sendFailureChannel
Set the channel to which failed send results are sent.- Parameters:
sendFailureChannel- the channel.- Returns:
- the spec.
-
sendFailureChannel
-
futuresChannel
Set the channel to which send futures are sent.- Parameters:
futuresChannel- the channel.- Returns:
- the spec.
-
futuresChannel
-
producerRecordCreator
Set aKafkaProducerMessageHandler.ProducerRecordCreatorto create theProducerRecord. Ignored ifuseTemplateConverteris true.- Parameters:
creator- the creator.- Returns:
- the spec.
- Since:
- 5.5.5
-
useTemplateConverter
Set to true to use the template's message converter to create theProducerRecordinstead of theproducerRecordCreator.- Parameters:
use- true to use the converter.- Returns:
- the spec.
- Since:
- 5.5.5
-