如何在Apache骆驼中创建ConsumerTemplate

时间:2019-01-18 11:03:44

标签: apache-camel spring-camel camel-ftp

我有一个骆驼处理器,它使用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;

1 个答案:

答案 0 :(得分:0)

如果您检查 ConsumerTemplate 类,您会注意到它扩展了 Service。这意味着它可以像 Spring Boot 中的任何其他组件一样自动装配,我猜你正在使用基于你的代码中使用的 @Component 注释。所以解决方案非常简单:

@Autowired
private ConsumerTemplate consumerTemplate;