如何通过变量将队列名称传递给骆驼路线?

时间:2019-12-10 01:44:56

标签: dynamic parameters routes rabbitmq apache-camel

我正在尝试通过骆驼路线动态创建Rabbitmq队列。

我配置的骆驼路线:

@Override
public void configure() throws Exception {
        JacksonDataFormat jsonDataFormat = new JacksonDataFormat(somequeue.class);
        from("direct:startRabbitMQPoint").id("rabbitMQRoute").marshal(jsonDataFormat)
                .to("rabbitmq:test.mymq.exchange?queue=test.mymq.queue&exchangeType=direct&autoDelete=false&connectionFactory=#myConnectFactory")
                .end();
}

此配置确实创建了一个名称为test.mymq.queue的队列。但是,我的要求是在变量中传递队列名称,因为我想动态创建队列。我尝试通过路由类构造函数将参数传递给路由,如下所示:

公共类CreateQueueRoute扩展了RouteBuilder {

private String queueName;

public CreateQueueRoute(String queueName) {
    this.queueName = queueName;
}

@Override
public void configure() throws Exception {
        JacksonDataFormat jsonDataFormat = new JacksonDataFormat(somequeue.class);
        from("direct:startRabbitMQPoint").id("rabbitMQRoute").marshal(jsonDataFormat)
                .to("rabbitmq:test.mymq.exchange?queue="+queueName+"&exchangeType=direct&autoDelete=false&connectionFactory=#myConnectFactory")
                .end();
}

此配置创建名称为“ 0 0/4 * * *?”的队列

我在做什么错?如何将队列名称作为参数传递给骆驼路线?

预先感谢

0 个答案:

没有答案