Camel setBody使用Spring配置

use*_*073 2 spring apache-camel


我使用以下方法构建了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");
   }
});
Run Code Online (Sandbox Code Playgroud)

现在我需要把它变成Spring.

<camel:route>
    <camel:from uri="timer:foo?period=1s" />
    <camel:to uri="jms:queue:activemq/queue/TestQueue" />
</camel:route>
Run Code Online (Sandbox Code Playgroud)

我错过了表达式的Spring XML配置中的等价物:

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

Cla*_*sen 8

在Spring中,您可以使用简单的语言来构建此类消息.实际上你也可以用Java做到这一点,它也一样.

<setBody>
  <simple>${body}Message at ${date:now:yyyy-MM-dd HH:mm:ss}</simple>
</setBody>
Run Code Online (Sandbox Code Playgroud)

请注意,计时器发送一个空/空体.所以你可能会在消息中看到"null".

关于简单请参阅:http://camel.apache.org/simple