在驼峰documentation中,提到我们可以使用@Produce注释注入ProducerTemplate,如下所示。
@Produce(uri = "activemq:foo")
private ProducerTemplate producer;
我想知道是否有可能不在注释中指定uri并将uri传递给其sendBody方法中的生成器,如下所示,以便我可以在Util类中使用它来生成任何端点? / p>
public class JmsProducerUtils {
@Produce
private ProducerTemplate producer;
public void publishMessageToEndpoint(String endpoint, String message) {
producer.sendBody(endpoint, message);
}
}
在使用它时是否有任何顾虑?
答案 0 :(得分:0)
嗯,不用担心,它绝对可以工作 - 您可以编写一个简单的单元测试来验证它 - 但除非您的URI是在运行时动态形成的,否则我建议使用他们在文档中提到的方法,例如:有一个界面:
@InOnly
public class JmsProducer {
void publish(String message);
}
然后将其注入您的班级,如下所示:
public class Foo {
@Produce(uri = "activemq:foo")
private JmsProducer fooProducer;
@Produce(uri = "activemq:bar")
private JmsProducer barProducer;
}