java.lang.Object
org.springframework.integration.kafka.dsl.Kafka

public final class Kafka extends Object
Factory class for Apache Kafka components.
Since:
5.4
Author:
Artem Bilan, Nasko Vasilev, Gary Russell, Anshul Mehra
  • Method Details

    • outboundChannelAdapter

      public static <K, V> KafkaProducerMessageHandlerSpec<K,V,?> outboundChannelAdapter(org.springframework.kafka.core.KafkaTemplate<K,V> kafkaTemplate)
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type.
      Parameters:
      kafkaTemplate - the KafkaTemplate to use
      Returns:
      the KafkaProducerMessageHandlerSpec.
    • outboundChannelAdapter

      public static <K, V> KafkaProducerMessageHandlerSpec.KafkaProducerMessageHandlerTemplateSpec<K,V> outboundChannelAdapter(org.springframework.kafka.core.ProducerFactory<K,V> producerFactory)
      Create an initial KafkaProducerMessageHandlerSpec with ProducerFactory.
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type.
      Parameters:
      producerFactory - the ProducerFactory Java 8 Lambda.
      Returns:
      the KafkaProducerMessageHandlerSpec.
      See Also:
    • inboundChannelAdapter

      public static <K, V> KafkaInboundChannelAdapterSpec<K,V> inboundChannelAdapter(org.springframework.kafka.core.ConsumerFactory<K,V> consumerFactory, org.springframework.kafka.listener.ConsumerProperties consumerProperties)
      Create an initial KafkaInboundChannelAdapterSpec with the consumer factory and topics.
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type.
      Parameters:
      consumerFactory - the consumer factory.
      consumerProperties - the consumerProperties.
      Returns:
      the spec.
    • inboundChannelAdapter

      public static <K, V> KafkaInboundChannelAdapterSpec<K,V> inboundChannelAdapter(org.springframework.kafka.core.ConsumerFactory<K,V> consumerFactory, org.springframework.kafka.listener.ConsumerProperties consumerProperties, boolean allowMultiFetch)
      Create an initial KafkaInboundChannelAdapterSpec with the consumer factory and topics.
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type.
      Parameters:
      consumerFactory - the consumer factory.
      consumerProperties - the consumerProperties.
      allowMultiFetch - true to fetch multiple records on each poll.
      Returns:
      the spec.
    • inboundChannelAdapter

      public static <K, V> KafkaInboundChannelAdapterSpec<K,V> inboundChannelAdapter(org.springframework.kafka.core.ConsumerFactory<K,V> consumerFactory, org.springframework.kafka.listener.ConsumerProperties consumerProperties, KafkaMessageSource.KafkaAckCallbackFactory<K,V> ackCallbackFactory)
      Create an initial KafkaInboundChannelAdapterSpec with the consumer factory and topics with a custom ack callback factory.
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type.
      Parameters:
      consumerFactory - the consumer factory.
      consumerProperties - the consumerProperties.
      ackCallbackFactory - the callback factory.
      Returns:
      the spec.
    • inboundChannelAdapter

      public static <K, V> KafkaInboundChannelAdapterSpec<K,V> inboundChannelAdapter(org.springframework.kafka.core.ConsumerFactory<K,V> consumerFactory, org.springframework.kafka.listener.ConsumerProperties consumerProperties, KafkaMessageSource.KafkaAckCallbackFactory<K,V> ackCallbackFactory, boolean allowMultiFetch)
      Create an initial KafkaInboundChannelAdapterSpec with the consumer factory and topics with a custom ack callback factory.
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type.
      Parameters:
      consumerFactory - the consumer factory.
      consumerProperties - the consumerProperties.
      ackCallbackFactory - the callback factory.
      allowMultiFetch - true to fetch multiple records on each poll.
      Returns:
      the spec.
    • messageDrivenChannelAdapter

      public static <K, V> KafkaMessageDrivenChannelAdapterSpec<K,V,?> messageDrivenChannelAdapter(org.springframework.kafka.listener.AbstractMessageListenerContainer<K,V> listenerContainer)
      Create an initial KafkaMessageDrivenChannelAdapterSpec. If the listener container is not already a bean it will be registered in the application context. If the adapter spec has an id, the bean name will be that id appended with '.container'. Otherwise, the bean name will be generated from the container class name.
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type.
      Parameters:
      listenerContainer - the AbstractMessageListenerContainer.
      Returns:
      the KafkaMessageDrivenChannelAdapterSpec.
    • messageDrivenChannelAdapter

      public static <K, V> KafkaMessageDrivenChannelAdapterSpec<K,V,?> messageDrivenChannelAdapter(org.springframework.kafka.listener.AbstractMessageListenerContainer<K,V> listenerContainer, KafkaMessageDrivenChannelAdapter.ListenerMode listenerMode)
      Create an initial KafkaMessageDrivenChannelAdapterSpec. If the listener container is not already a bean it will be registered in the application context. If the adapter spec has an id, the bean name will be that id appended with '.container'. Otherwise, the bean name will be generated from the container class name.
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type.
      Parameters:
      listenerContainer - the AbstractMessageListenerContainer.
      listenerMode - the KafkaMessageDrivenChannelAdapter.ListenerMode.
      Returns:
      the KafkaMessageDrivenChannelAdapterSpec.
    • messageDrivenChannelAdapter

      public static <K, V> KafkaMessageDrivenChannelAdapterSpec.KafkaMessageDrivenChannelAdapterListenerContainerSpec<K,V> messageDrivenChannelAdapter(org.springframework.kafka.core.ConsumerFactory<K,V> consumerFactory, org.springframework.kafka.listener.ContainerProperties containerProperties)
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type.
      Parameters:
      consumerFactory - the ConsumerFactory.
      containerProperties - the ContainerProperties to use.
      Returns:
      the KafkaMessageDrivenChannelAdapterSpec.KafkaMessageDrivenChannelAdapterListenerContainerSpec.
    • messageDrivenChannelAdapter

      public static <K, V> KafkaMessageDrivenChannelAdapterSpec.KafkaMessageDrivenChannelAdapterListenerContainerSpec<K,V> messageDrivenChannelAdapter(org.springframework.kafka.core.ConsumerFactory<K,V> consumerFactory, org.springframework.kafka.listener.ContainerProperties containerProperties, KafkaMessageDrivenChannelAdapter.ListenerMode listenerMode)
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type.
      Parameters:
      consumerFactory - the ConsumerFactory.
      containerProperties - the ContainerProperties to use.
      listenerMode - the KafkaMessageDrivenChannelAdapter.ListenerMode.
      Returns:
      the KafkaMessageDrivenChannelAdapterSpec.KafkaMessageDrivenChannelAdapterListenerContainerSpec.
    • messageDrivenChannelAdapter

      public static <K, V> KafkaMessageDrivenChannelAdapterSpec.KafkaMessageDrivenChannelAdapterListenerContainerSpec<K,V> messageDrivenChannelAdapter(org.springframework.kafka.core.ConsumerFactory<K,V> consumerFactory, org.springframework.kafka.support.TopicPartitionOffset... topicPartitions)
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type.
      Parameters:
      consumerFactory - the ConsumerFactory.
      topicPartitions - the TopicPartitionOffset vararg.
      Returns:
      the KafkaMessageDrivenChannelAdapterSpec.KafkaMessageDrivenChannelAdapterListenerContainerSpec.
    • messageDrivenChannelAdapter

      public static <K, V> KafkaMessageDrivenChannelAdapterSpec.KafkaMessageDrivenChannelAdapterListenerContainerSpec<K,V> messageDrivenChannelAdapter(org.springframework.kafka.core.ConsumerFactory<K,V> consumerFactory, KafkaMessageDrivenChannelAdapter.ListenerMode listenerMode, org.springframework.kafka.support.TopicPartitionOffset... topicPartitions)
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type.
      Parameters:
      consumerFactory - the ConsumerFactory.
      listenerMode - the KafkaMessageDrivenChannelAdapter.ListenerMode.
      topicPartitions - the TopicPartitionOffset vararg.
      Returns:
      the KafkaMessageDrivenChannelAdapterSpec.KafkaMessageDrivenChannelAdapterListenerContainerSpec.
    • messageDrivenChannelAdapter

      public static <K, V> KafkaMessageDrivenChannelAdapterSpec.KafkaMessageDrivenChannelAdapterListenerContainerSpec<K,V> messageDrivenChannelAdapter(org.springframework.kafka.core.ConsumerFactory<K,V> consumerFactory, String... topics)
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type.
      Parameters:
      consumerFactory - the ConsumerFactory.
      topics - the topics vararg.
      Returns:
      the KafkaMessageDrivenChannelAdapterSpec.KafkaMessageDrivenChannelAdapterListenerContainerSpec.
    • messageDrivenChannelAdapter

      public static <K, V> KafkaMessageDrivenChannelAdapterSpec.KafkaMessageDrivenChannelAdapterListenerContainerSpec<K,V> messageDrivenChannelAdapter(org.springframework.kafka.core.ConsumerFactory<K,V> consumerFactory, KafkaMessageDrivenChannelAdapter.ListenerMode listenerMode, String... topics)
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type.
      Parameters:
      consumerFactory - the ConsumerFactory.
      listenerMode - the KafkaMessageDrivenChannelAdapter.ListenerMode.
      topics - the topics vararg.
      Returns:
      the KafkaMessageDrivenChannelAdapterSpec.KafkaMessageDrivenChannelAdapterListenerContainerSpec.
    • messageDrivenChannelAdapter

      public static <K, V> KafkaMessageDrivenChannelAdapterSpec.KafkaMessageDrivenChannelAdapterListenerContainerSpec<K,V> messageDrivenChannelAdapter(org.springframework.kafka.core.ConsumerFactory<K,V> consumerFactory, Pattern topicPattern)
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type.
      Parameters:
      consumerFactory - the ConsumerFactory.
      topicPattern - the topicPattern vararg.
      Returns:
      the KafkaMessageDrivenChannelAdapterSpec.KafkaMessageDrivenChannelAdapterListenerContainerSpec.
    • messageDrivenChannelAdapter

      public static <K, V> KafkaMessageDrivenChannelAdapterSpec.KafkaMessageDrivenChannelAdapterListenerContainerSpec<K,V> messageDrivenChannelAdapter(org.springframework.kafka.core.ConsumerFactory<K,V> consumerFactory, KafkaMessageDrivenChannelAdapter.ListenerMode listenerMode, Pattern topicPattern)
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type.
      Parameters:
      consumerFactory - the ConsumerFactory.
      listenerMode - the KafkaMessageDrivenChannelAdapter.ListenerMode.
      topicPattern - the topicPattern vararg.
      Returns:
      the KafkaMessageDrivenChannelAdapterSpec.KafkaMessageDrivenChannelAdapterListenerContainerSpec.
    • outboundGateway

      public static <K, V, R> KafkaOutboundGatewaySpec<K,V,R,?> outboundGateway(org.springframework.kafka.requestreply.ReplyingKafkaTemplate<K,V,R> kafkaTemplate)
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type (request).
      R - the Kafka message value type (reply).
      Parameters:
      kafkaTemplate - the ReplyingKafkaTemplate to use
      Returns:
      the KafkaGatewayMessageHandlerSpec.
    • outboundGateway

      public static <K, V, R> KafkaOutboundGatewaySpec.KafkaGatewayMessageHandlerTemplateSpec<K,V,R> outboundGateway(org.springframework.kafka.core.ProducerFactory<K,V> producerFactory, org.springframework.kafka.listener.GenericMessageListenerContainer<K,R> replyContainer)
      Create an initial KafkaProducerMessageHandlerSpec with ProducerFactory.
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type (request).
      R - the Kafka message value type (reply).
      Parameters:
      producerFactory - the ProducerFactory Java 8 Lambda.
      replyContainer - a listener container for replies.
      Returns:
      the KafkaGatewayMessageHandlerSpec.
    • inboundGateway

      public static <K, V, R> KafkaInboundGatewaySpec<K,V,R,?> inboundGateway(org.springframework.kafka.listener.AbstractMessageListenerContainer<K,V> container, org.springframework.kafka.core.KafkaTemplate<K,R> template)
      Create an initial KafkaInboundGatewaySpec with the provided container and template. If the listener container is not already a bean it will be registered in the application context. If the adapter spec has an id, the bean name will be that id appended with '.container'. Otherwise, the bean name will be generated from the container class name.
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type (request).
      R - the Kafka message value type (reply).
      Parameters:
      container - the container.
      template - the template.
      Returns:
      the spec.
    • inboundGateway

      public static <K, V, R> KafkaInboundGatewaySpec.KafkaInboundGatewayListenerContainerSpec<K,V,R> inboundGateway(org.springframework.kafka.core.ConsumerFactory<K,V> consumerFactory, org.springframework.kafka.listener.ContainerProperties containerProperties, org.springframework.kafka.core.ProducerFactory<K,R> producerFactory)
      Create an initial KafkaInboundGatewaySpec with the provided consumer factory, container properties and producer factory.
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type (request).
      R - the Kafka message value type (reply).
      Parameters:
      consumerFactory - the consumer factory.
      containerProperties - the container properties.
      producerFactory - the producer factory.
      Returns:
      the spec.
    • inboundGateway

      public static <K, V, R> KafkaInboundGatewaySpec.KafkaInboundGatewayListenerContainerSpec<K,V,R> inboundGateway(KafkaMessageListenerContainerSpec<K,V> containerSpec, KafkaTemplateSpec<K,R> templateSpec)
      Create an initial KafkaInboundGatewaySpec with the provided container and template specs.
      Type Parameters:
      K - the Kafka message key type.
      V - the Kafka message value type (request).
      R - the Kafka message value type (reply).
      Parameters:
      containerSpec - the container spec.
      templateSpec - the template spec.
      Returns:
      the spec.
    • channel

      public static KafkaPointToPointChannelSpec channel(org.springframework.kafka.core.KafkaTemplate<?,?> template, org.springframework.kafka.config.KafkaListenerContainerFactory<?> containerFactory, String topic)
      Create a spec for a subscribable channel with the provided parameters.
      Parameters:
      template - the template.
      containerFactory - the container factory.
      topic - the topic.
      Returns:
      the spec.
    • publishSubscribeChannel

      public static KafkaPublishSubscribeChannelSpec publishSubscribeChannel(org.springframework.kafka.core.KafkaTemplate<?,?> template, org.springframework.kafka.config.KafkaListenerContainerFactory<?> containerFactory, String topic)
      Create a spec for a publish-subscribe channel with the provided parameters.
      Parameters:
      template - the template.
      containerFactory - the container factory.
      topic - the topic.
      Returns:
      the spec.
    • pollableChannel

      public static KafkaPollableChannelSpec pollableChannel(org.springframework.kafka.core.KafkaTemplate<?,?> template, KafkaMessageSource<?,?> source)
      Create a spec for a pollable channel with the provided parameters.
      Parameters:
      template - the template.
      source - the source.
      Returns:
      the spec.
      Since:
      3.3