Class ConvertingMessageListener<V>
java.lang.Object
org.springframework.kafka.listener.adapter.ConvertingMessageListener<V>
- Type Parameters:
V- the desired value type after conversion.
- All Implemented Interfaces:
AcknowledgingConsumerAwareMessageListener<Object,,Object> DelegatingMessageListener<MessageListener>,GenericMessageListener<org.apache.kafka.clients.consumer.ConsumerRecord<Object,,Object>> MessageListener<Object,Object>
public class ConvertingMessageListener<V>
extends Object
implements DelegatingMessageListener<MessageListener>, AcknowledgingConsumerAwareMessageListener<Object,Object>
A
AcknowledgingConsumerAwareMessageListener adapter that implements
converting received ConsumerRecord using specified MessageConverter
and then passes result to specified MessageListener. If directly set, also headers
can be mapped with implementation of KafkaHeaderMapper and then passed to converter
as a part of message being actually processed. Otherwise, if header mapper is not specified,
headers will not be accessible from converter's perspective.- Since:
- 3.0
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionConvertingMessageListener(MessageListener<?, V> delegateMessageListener, Class<V> desiredValueType) Construct an instance with the providedMessageListenerandClassas a desired type ofConsumerRecord's value after conversion. -
Method Summary
Modifier and TypeMethodDescriptionReturn the delegate.voidonMessage(org.apache.kafka.clients.consumer.ConsumerRecord receivedRecord, Acknowledgment acknowledgment, org.apache.kafka.clients.consumer.Consumer consumer) Invoked with data from kafka and provides access to theConsumer.voidsetKafkaHeaderMapper(KafkaHeaderMapper headerMapper) Set aKafkaHeaderMapper.voidsetMessageConverter(org.springframework.messaging.converter.MessageConverter messageConverter) Set aMessageConverter.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.kafka.listener.AcknowledgingConsumerAwareMessageListener
onMessageMethods inherited from interface org.springframework.kafka.listener.GenericMessageListener
onMessage, onMessage
-
Constructor Details
-
ConvertingMessageListener
public ConvertingMessageListener(MessageListener<?, V> delegateMessageListener, Class<V> desiredValueType) Construct an instance with the providedMessageListenerandClassas a desired type ofConsumerRecord's value after conversion. Default value ofMessageConverteris used, which isGenericMessageConverter.- Parameters:
delegateMessageListener- theMessageListenerto use when passing convertedConsumerRecordfurther.desiredValueType- theClasssetting desired type ofConsumerRecord's value.
-
-
Method Details
-
setMessageConverter
public void setMessageConverter(org.springframework.messaging.converter.MessageConverter messageConverter) Set aMessageConverter.- Parameters:
messageConverter- the message converter to use for conversion of incomingConsumerRecord.- Since:
- 3.0
-
setKafkaHeaderMapper
Set aKafkaHeaderMapper.- Parameters:
headerMapper- the header mapper to use for mapping headers of incomingConsumerRecord.- Since:
- 3.0
-
getDelegate
Description copied from interface:DelegatingMessageListenerReturn the delegate.- Specified by:
getDelegatein interfaceDelegatingMessageListener<V>- Returns:
- the delegate.
-
onMessage
public void onMessage(org.apache.kafka.clients.consumer.ConsumerRecord receivedRecord, Acknowledgment acknowledgment, org.apache.kafka.clients.consumer.Consumer consumer) Description copied from interface:GenericMessageListenerInvoked with data from kafka and provides access to theConsumer. The default implementation throwsUnsupportedOperationException.- Specified by:
onMessagein interfaceAcknowledgingConsumerAwareMessageListener<Object,Object> - Specified by:
onMessagein interfaceGenericMessageListener<V>- Parameters:
receivedRecord- the data to be processed.acknowledgment- the acknowledgment.consumer- the consumer.
-