我正在使用 Kinesis 客户端库 (KCL) 和 Spring Boot。要使用 KCL,我必须RecordProcessor为 interface实现一个类(我将其命名为)IRecordProcessor。而 KCL 会从 kinesis 调用这个类并处理记录。但是当我尝试使用依赖注入时,我发现它没有成功。
这是片段RecordProcessor:
@Component
public class RecordProcessor implements IRecordProcessor {
@Autowired
private SingleRecordProcessor singleRecordProcessor;
@Override
public void initialize(String shardId) {
...
}
@Override
public void processRecords(List<Record> records, IRecordProcessorCheckpointer checkpointer) {
...
}
}
我Class SingleRecordProcessor用来处理来自 kinesis 的单个记录。这是我的SingleRecordProcessor课程片段:
@Component
public class SingleRecordProcessor {
private Parser parser;
private Map<String, Table> tables;
public SingleRecordProcessor() {
}
@Autowired
private void setParser(Parser parser) {
this.parser = parser;
}
@Autowired
private void setTables(Map<String, Table> tables) {
this.tables = tables;
}
public void process(String record) {
...
}
}
我想让spring框架自动将SingleRecordProcessor实例注入到类中并使用它。但我发现该字段singleRecordProcessor为空。
知道为什么依赖注入失败吗?或者不可能将依赖项注入到其他框架调用的类中(在这种情况下是 KCL)?任何建议将不胜感激!真的需要一些帮助,请!
相关分类