图例
描述
通常我们使用DSL去创建路由的时候并不是直接使用它的接口,而是使用camel提供的URIs,
用合适的组件创建所需要的端点那是camel的责任。
SpringXML事例
<route>
<from uri="file://local/router/messages/foo"/>
<to uri="jms:queue:foo"/>
</route>
这样,就创建了file和jms端点,这是camel会自动帮我们创建
Dynamic To
从camel2.16版本开始,camel支持从消息中动态获取下一个路由的uri地址,如下:
<route>
<from uri="direct:start"/>
<toD uri="${header.foo}"/>
</route>
java代码事例如下:
from("direct:start")
.toD("${header.foo}"
也可以直接指定uri类型,如下:
from("direct:start")
.toD("mock:${header.foo}");
或者在SpringXML中这样写:
<route>
<from uri="direct:start"/>
<toD uri="mock:${header.foo}"/>
</route>
Dynamic To 的参数
- uri:地址
- pattern:修改Exchange的模式
- cacheSize:缓存,默认大小是1000,改为-1则为清空所有的缓存
- ignoreInvalidEndpoint:如果uri不能被正确解析,是否忽略错误