如何注入ProducerTemplate

时间:2014-12-28 17:26:52

标签: spring apache-camel

我想知道如何正确使用我在我的一个模型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()时,我得到了一个N​​PE。那么,注释的正确用法是什么?

最佳, 爱德华多

1 个答案:

答案 0 :(得分:1)

根据camel的documentation,它创建了一个代理,用于实现已使用@Produce注释的接口。您是否可以尝试使用文档中建议的一种方法创建一个非常简单的界面。虽然,你的代码应该可行,但我怀疑ProducerTemplate有很多方法和bcoz,代理创建不会发生