Java 使用Spring No Xml配置Camel

Java 使用Spring No Xml配置Camel,java,spring,apache-camel,Java,Spring,Apache Camel,我正在尝试使用Spring只使用注释和直接Java来配置Camel。以下是我创建的路线: @Produce(uri = "activemq:my.route") ProducerTemplate producer; @RequestMapping(value = "/test", method = RequestMethod.POST) public void testCamel() { producer.sendBody("TEST"); } 需要一个camel上下文,我正试图在A

我正在尝试使用Spring只使用注释和直接Java来配置Camel。以下是我创建的路线:

@Produce(uri = "activemq:my.route")
ProducerTemplate producer;

@RequestMapping(value = "/test", method = RequestMethod.POST)
public void testCamel()
{
    producer.sendBody("TEST");
}
需要一个camel上下文,我正试图在AppConfig类中定义它:

我的当前版本:

@Autowired
private ApplicationContext applicationContext;

@Bean
    public CamelContext camelContext() throws Exception {
        SpringCamelContext springCamelContext = new SpringCamelContext(applicationContext);
        springCamelContext.addRoutes(new com.bigideas.routing.Routes());

        return springCamelContext;
    }
Routes类只是一个扩展RouteBuilder的空类


问题是,当我实际调用testCamel方法时,我的生产者是空的。我知道我可以在xml配置文件中创建上下文,我只是想知道我在不使用xml时做错了什么。

我相信您应该按照这里的说明操作:,所以一个
@configuration
类使用
@ComponentScan
扩展
CamelConfiguration


此外,您的
com.bigideas.routing.Routes
也应该是w Springbean(
@Bean
@Component

使用camel 2.18和Spring boot,camel上下文构建和单元测试变得非常简单

看看这个例子

扩展routebuilder的类应该用@Component注释。同样在Spring控制器类中,您需要自动连接Camel上下文,然后使用创建生产者/消费者模板。确保调用模板的启动/停止方法,以便有效地使用其资源