在使用spring-kafka的时候,需要注解EnableKafka,这个注解的目的就是引入了相关的启动配置。
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Import(KafkaBootstrapConfiguration.class) // 看过来
public @interface EnableKafka {
}这个启动配置类引入了2个bean,KafkaListenerAnnotationBeanPostProcessor这个后置处理器用于发现处理有KafkaListener注解的方法,KafkaListenerEndpointRegistry用于注册Listener容器。
@Configuration
public class KafkaBootstrapConfiguration {
@SuppressWarnings("rawtypes")
@Bean(name = KafkaListenerConfigUtils.KAFKA_LISTENER_ANNOTATION_PROCESSOR_BEAN_NAME)
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
public KafkaListenerAnnotationBeanPostProcessor kafkaListenerAnnotationProcessor() {
return new KafkaListenerAnnotationBeanPostProcessor();
}
@Bean(name = KafkaListenerConfigUtils.KAFKA_LISTENER_ENDPOINT_REGISTRY_BEAN_NAME)
public KafkaListenerEndpointRegistry defaultKafkaListenerEndpointRegistry() {
return new KafkaListenerEndpointRegistry();
}
}需要再说,Spring的可扩展性值得学习。
Kafka 0.9.0