K
- the key type.V
- the value type.public class KafkaListenerAnnotationBeanPostProcessor<K,V>
extends java.lang.Object
implements org.springframework.beans.factory.config.BeanPostProcessor, org.springframework.core.Ordered, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.SmartInitializingSingleton
KafkaListener
to be invoked by a Kafka message listener container created under the covers
by a KafkaListenerContainerFactory
according to the parameters of the annotation.
Annotated methods can use flexible arguments as defined by KafkaListener
.
This post-processor is automatically registered by Spring's EnableKafka
annotation.
Auto-detect any KafkaListenerConfigurer
instances in the container,
allowing for customization of the registry to be used, the default container
factory or for fine-grained control over endpoints registration. See
EnableKafka
Javadoc for complete usage details.
KafkaListener
,
KafkaListenerErrorHandler
,
EnableKafka
,
KafkaListenerConfigurer
,
KafkaListenerEndpointRegistrar
,
KafkaListenerEndpointRegistry
,
KafkaListenerEndpoint
,
MethodKafkaListenerEndpoint
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
DEFAULT_KAFKA_LISTENER_CONTAINER_FACTORY_BEAN_NAME
The bean name of the default
KafkaListenerContainerFactory . |
Constructor and Description |
---|
KafkaListenerAnnotationBeanPostProcessor() |
Modifier and Type | Method and Description |
---|---|
void |
afterSingletonsInstantiated() |
int |
getOrder() |
java.lang.Object |
postProcessAfterInitialization(java.lang.Object bean,
java.lang.String beanName) |
java.lang.Object |
postProcessBeforeInitialization(java.lang.Object bean,
java.lang.String beanName) |
protected void |
processKafkaListener(KafkaListener kafkaListener,
java.lang.reflect.Method method,
java.lang.Object bean,
java.lang.String beanName) |
protected void |
processListener(MethodKafkaListenerEndpoint<?,?> endpoint,
KafkaListener kafkaListener,
java.lang.Object bean,
java.lang.Object adminTarget,
java.lang.String beanName) |
void |
setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
Making a
BeanFactory available is optional; if not set,
KafkaListenerConfigurer beans won't get autodetected and an
endpoint registry has to be explicitly configured. |
void |
setContainerFactoryBeanName(java.lang.String containerFactoryBeanName)
Set the name of the
KafkaListenerContainerFactory to use by default. |
void |
setEndpointRegistry(KafkaListenerEndpointRegistry endpointRegistry)
Set the
KafkaListenerEndpointRegistry that will hold the created
endpoint and manage the lifecycle of the related listener container. |
void |
setMessageHandlerMethodFactory(org.springframework.messaging.handler.annotation.support.MessageHandlerMethodFactory messageHandlerMethodFactory)
Set the
MessageHandlerMethodFactory to use to configure the message
listener responsible to serve an endpoint detected by this processor. |
public static final java.lang.String DEFAULT_KAFKA_LISTENER_CONTAINER_FACTORY_BEAN_NAME
KafkaListenerContainerFactory
.public KafkaListenerAnnotationBeanPostProcessor()
public int getOrder()
getOrder
in interface org.springframework.core.Ordered
public void setEndpointRegistry(KafkaListenerEndpointRegistry endpointRegistry)
KafkaListenerEndpointRegistry
that will hold the created
endpoint and manage the lifecycle of the related listener container.endpointRegistry
- the KafkaListenerEndpointRegistry
to set.public void setContainerFactoryBeanName(java.lang.String containerFactoryBeanName)
KafkaListenerContainerFactory
to use by default.
If none is specified, "KafkaListenerContainerFactory" is assumed to be defined.
containerFactoryBeanName
- the KafkaListenerContainerFactory
bean name.public void setMessageHandlerMethodFactory(org.springframework.messaging.handler.annotation.support.MessageHandlerMethodFactory messageHandlerMethodFactory)
MessageHandlerMethodFactory
to use to configure the message
listener responsible to serve an endpoint detected by this processor.
By default, DefaultMessageHandlerMethodFactory
is used and it
can be configured further to support additional method arguments
or to customize conversion and validation support. See
DefaultMessageHandlerMethodFactory
Javadoc for more details.
messageHandlerMethodFactory
- the MessageHandlerMethodFactory
instance.public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
BeanFactory
available is optional; if not set,
KafkaListenerConfigurer
beans won't get autodetected and an
endpoint registry
has to be explicitly configured.setBeanFactory
in interface org.springframework.beans.factory.BeanFactoryAware
beanFactory
- the BeanFactory
to be used.public void afterSingletonsInstantiated()
afterSingletonsInstantiated
in interface org.springframework.beans.factory.SmartInitializingSingleton
public java.lang.Object postProcessBeforeInitialization(java.lang.Object bean, java.lang.String beanName) throws org.springframework.beans.BeansException
postProcessBeforeInitialization
in interface org.springframework.beans.factory.config.BeanPostProcessor
org.springframework.beans.BeansException
public java.lang.Object postProcessAfterInitialization(java.lang.Object bean, java.lang.String beanName) throws org.springframework.beans.BeansException
postProcessAfterInitialization
in interface org.springframework.beans.factory.config.BeanPostProcessor
org.springframework.beans.BeansException
protected void processKafkaListener(KafkaListener kafkaListener, java.lang.reflect.Method method, java.lang.Object bean, java.lang.String beanName)
protected void processListener(MethodKafkaListenerEndpoint<?,?> endpoint, KafkaListener kafkaListener, java.lang.Object bean, java.lang.Object adminTarget, java.lang.String beanName)