Camel里各种常用对象在不同语境下的调用方式

来总结一下property,header和body在各个context下的引用方式

property (defined in routeGroup)

definition

1
<property name="orderAmountMultiplier" value="100" />

groovy

1
camelContext.resolvePropertyPlaceholders('{{x.x.x}}')

 
simple

1
{{x.x.x}}

uri reference  

1
2
<to uri="{{x.x.x}}"/>

java

1
#TODO

The syntax to use Camel’s property placeholder is to use \{{key}} for example {{file.uri}} where file.uri is the property key. More detail info can be found here

property in Camel

definition

1
2
3
<setProperty propertyName="xx">
  <simple>{{x.x.x}}</simple>
</setProperty>

groovy

1
exchange.properties.xx

simple

1
${property.xx}

uri reference
同simple的格式

java

1
#TODO

header in Camel

definition

1
2
3
<setHeader headerName="xx">
<constant>SELECT name, id FROM store.store</constant>
</setHeader>

groovy

1
request.headers.xx

simple

1
$simple{header.xx} or ${header.xx}

uri reference
好像是用simple的格式,估计jdbc那种ref还是没有办法用的,但是普通的uri里面还是可以用的

1
2
3
4
5
6
7
8
9
10
11
12
13
14

<setBody>
<simple>
this is a test only
</simple>
</setBody>

<setHeader headerName="ff">
<simple>test</simple>
</setHeader>


<to uri="file:///tmp/test?fileName=${header.ff}"/>

java

1
#TODO

body in Camel

definition

1
2
3
4
5
6
<setBody>
<simple>
SELECT name FROM store.store where id = 1;
</simple>
</setBody>

groovy

1
request.body

simple

1
${body['xx']}/${body.xx}

uri reference
同simple格式

Java  

1
exchange.getIn().setBody()