Camel setBody 使用 Spring 配置

Camel setBody using Spring configuration


我使用以下方法构建了 Java Camel Timer-JMS 路由:

context.addRoutes(new RouteBuilder() {
   public void configure() {
    from("timer:foo?period=1s").setBody(body().
       append("Message at ${date:now:yyyy-MM-dd HH:mm:ss}")).to("jms:queue:activemq/queue/TestQueue");
   }
});

现在我需要把它变成Spring。

<camel:route>
    <camel:from uri="timer:foo?period=1s" />
    <camel:to uri="jms:queue:activemq/queue/TestQueue" />
</camel:route>

我在 Spring XML 表达式配置中缺少等效项:

setBody(body().append("Message at ${date:now:yyyy-MM-dd HH:mm:ss}")

在Spring中,您可以使用简单的语言来构建此类消息。其实你也可以在Java中这样做,也是一样的。

<setBody>
  <simple>${body}Message at ${date:now:yyyy-MM-dd HH:mm:ss}</simple>
</setBody>

注意计时器会发送一个 empty/null 正文。所以你可能会在消息中看到"null"。

关于简单见:http://camel.apache.org/simple