我正在尝试通过骆驼路线动态创建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 * * *?”的队列
我在做什么错?如何将队列名称作为参数传递给骆驼路线?
预先感谢