Замените Spring Java config на XML для Apache Kafka - PullRequest
1 голос
/ 05 августа 2020

Но можно заменить конфигурацию Java следующим образом

@Configuration
@EnableKafka
public class KafkaConfig {

}

полной конфигурацией XML?

В частности, как методы (или классы) могут быть аннотированы

@KafkaListener
public void poll(String msg){}

введено в контекст Spring Kafka в качестве слушателей?

1 Ответ

2 голосов
/ 05 августа 2020

@EnableKafka добавляет 2 компонента в контекст приложения:

    @Override
    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
        if (!registry.containsBeanDefinition(
                KafkaListenerConfigUtils.KAFKA_LISTENER_ANNOTATION_PROCESSOR_BEAN_NAME)) {

            registry.registerBeanDefinition(KafkaListenerConfigUtils.KAFKA_LISTENER_ANNOTATION_PROCESSOR_BEAN_NAME,
                    new RootBeanDefinition(KafkaListenerAnnotationBeanPostProcessor.class));
        }

        if (!registry.containsBeanDefinition(KafkaListenerConfigUtils.KAFKA_LISTENER_ENDPOINT_REGISTRY_BEAN_NAME)) {
            registry.registerBeanDefinition(KafkaListenerConfigUtils.KAFKA_LISTENER_ENDPOINT_REGISTRY_BEAN_NAME,
                    new RootBeanDefinition(KafkaListenerEndpointRegistry.class));
        }
    }

Поэтому просто добавьте их как <bean/> с этими именами.

"org.springframework.kafka.config.internalKafkaListenerAnnotationProcessor"

"org.springframework.kafka.config.internalKafkaListenerEndpointRegistry"
...