我想知道如何正确使用我在我的一个模型bean中定义的ProducerTemplate的@Produce注释。
如果我添加一个@Autowired和这个@Bean定义,一切都很好看:
@Bean
ProducerTemplate producerTemplate() throws Exception {
ProducerTemplate producerTemplate = camelContext().createProducerTemplate();
producerTemplate.setDefaultEndpointUri("seda:workflowEntryPoint");
return producerTemplate;
}
但如果我不这样做而且只做
@Produce(uri = "seda:workflowEntryPoint")
private ProducerTemplate producer;
尝试使用它来调用sendMessage()时,我得到了一个NPE。那么,注释的正确用法是什么?
最佳, 爱德华多
答案 0 :(得分:1)
根据camel的documentation,它创建了一个代理,用于实现已使用@Produce
注释的接口。您是否可以尝试使用文档中建议的一种方法创建一个非常简单的界面。虽然,你的代码应该可行,但我怀疑ProducerTemplate
有很多方法和bcoz,代理创建不会发生