前言
对于Java web服务通常都会使用spring-boot作为web基础框架,今天就从spring的角度分析一下kafka是如何注入到spring容器中并且如何使用的。本文主要针对spring-kafka.2.5.5.RELEASE版本进行分析,不涉及kafka-clients原理讲解。
了解Springframework
Bean的生命周期:
spring容器从全局的角度来看就是管理web系统运行过程中所需要的对象,其中bean的生命周期就是系统运行所依赖对象的 创建过程->初始化过程->对象的销毁过程。
import注解和ImportBeanDefinitionRegistrar使用:
- ImportBeanDefinitionRegistrar类只能通过其他类@Import的方式来加载,通常是启动类或配置类。
- 使用@Import,如果括号中的类是ImportBeanDefinitionRegistrar的实现类,则会调用接口方法,将其中要注册的类注册成bean
- 实现该接口的类拥有注册bean的能力。
BeanPostProcess作用:
利用模板的特性,spring容器在bean做初始化的前后都会调用到BeanPostProcess接口内部的方法,用于做一些特殊处理。
自己实现一个扩展该如何实现
根据bean的生命周期,和kafka生产消费的特性,如果我们自己要实现一个spring-kafka的话需要实现以下几个功