In dem camel documentation wird erwähnt, dass wir das ProducerTemplate mithilfe der @Produce-Annotation wie unten gezeigt injizieren können.Apache Camel: Kann ich @Produce verwenden, ohne den Endpoint uri in der Annotation anzugeben?
@Produce(uri = "activemq:foo")
private ProducerTemplate producer;
Ich frage mich, ob es möglich ist, nicht die uri in der Anmerkung zu spezifizieren und die uri an den Hersteller in seinen sendBody Verfahren, wie unten passieren, so dass ich dies in einer Util Klasse verwenden kann, um zu produzieren irgendein Endpunkt?
public class JmsProducerUtils {
@Produce
private ProducerTemplate producer;
public void publishMessageToEndpoint(String endpoint, String message) {
producer.sendBody(endpoint, message);
}
}
Gibt es Bedenken, sich dessen bewusst zu sein, wenn Sie es so benutzen?
Zugabe als Kommentar, da sie indirekt Ihre Frage beantwortet. Sie könnten das Dienstprogramm CamelContextAware erstellen und dann den CamelContext verwenden, um einen Producer zu erhalten. Rufen Sie dann das sendBody wie in Ihrem Beispiel auf. –