Apache Kafka提供了一种向生产者和消费者添加拦截器的机制,此拦截器由kafka进行管理和spring无关。所以无法使用Spring依赖注入功能。但是我们可以使用拦截器提供的config()
方法来手动来获取这些bean依赖。
第一步:自定义拦截器:
/**
* 自定义生产者拦截器
* @author fangyuan
*/
public class PersonInfoProducerInterceptor implements ProducerInterceptor<Integer,String> {
private SomeBean someBean;
@Override
public ProducerRecord<Integer, String> onSend(ProducerRecord<Integer, String> record) {
someBean.execute("producer interceptor");
return record;
}
/**
* 被手动提交后执行代码
* @param metadata
* @param exception
*/
@Override
public void onAcknowledgement(RecordMetadata metadata, Exception exception) {
}
/**
* 关闭需要执行代码
*/
@Override
public void close() {
}
/**
* 可以从配置文件获取一些配置信息
* @param configs
*/
@Override
public void configure(Map<