我在Camel的网站上发现了这种方法,该方法演示了如何使用@Produce批注创建伪方法调用以将消息发送到JMS队列:
public interface MyListener {
String sayHello(String name);
}
public class MyBean {
@Produce(uri = "activemq:foo")
protected MyListener producer;
public void doSomething() {
// lets send a message
String response = producer.sayHello("James");
}
}
但是,在我的场景中,我需要能够为不同的环境设置不同的JMS队列。因此,JMS在以下位置排队:
@Produce(uri = "activemq:foo")
需要来自属性文件,而不是硬编码。
我该如何实现?在不使用注释的情况下,还有其他方法可以实现吗?
非常感谢你。
最佳答案
阅读有关使用属性占位符的文档
http://camel.apache.org/using-propertyplaceholder.html
设置时,您可以在带有注释的uri字符串中使用占位符
@Produce(uri = "activemq:{{myQueue}}")