我有一个骆驼处理器,它使用ConsumerTemplate从目录中读取文件,如下所示
@Component
public class FileReaderProcessor implements Processor {
@Consume
private ConsumerTemplate consumerTemplate;
/**
* {@inheritDoc}
*/
@Override
public void process(Exchange exchange) throws Exception {
final byte[] filecontent = consumerTemplate.receiveBody(SOURCE_FILE_COMPONENT,
byte[].class);
}
}
但是,当我尝试下面的代码时,它会起作用
final byte[] filecontent = exchange.getContext().createConsumerTemplate().receiveBody(SOURCE_FILE_COMPONENT,
byte[].class);
问题是我需要注释ConsumerTemplate并在我的代码中使用它。请帮助我使用带有注释的ConsumerTemplate
@Consume
private ConsumerTemplate consumerTemplate;
答案 0 :(得分:0)
如果您检查 ConsumerTemplate 类,您会注意到它扩展了 Service。这意味着它可以像 Spring Boot 中的任何其他组件一样自动装配,我猜你正在使用基于你的代码中使用的 @Component 注释。所以解决方案非常简单:
@Autowired
private ConsumerTemplate consumerTemplate;