Apache Camel DSL元素应如何命名?函数、方法还是动词更合适?
Apache Camel路由中
from/setBody等元素的标准称呼 标准官方/通用称呼:
最适合跨DSL(Java/XML/YAML)场景的统一名称是DSL节点(DSL Nodes),或者更直白的路由指令(Route Instructions)。官方文档中也会根据功能细分:- 像
from/to这类定义消息来源、去向的,属于端点指令(Endpoint Directives); - 像
setBody/removeHeader/unmarshal这类处理消息内容的,属于处理器(Processors)的DSL封装;
另外,很多这类元素对应具体的企业集成模式(EIP),所以也常被称为EIP实现节点。
- 像
关于“函数/方法”的称呼:
仅在Java DSL场景下,它们确实是Java类的方法,但XML/YAML DSL中是配置标签或键值对,没有“函数/方法”的概念,所以这个称呼有局限性,不适合跨场景统一使用。关于“动词”的称呼:
这是社区里非常流行的俗称,非常贴切——这些元素本质都是描述路由执行的动作(接收、修改、转发、转换等),口语交流中完全可以这么叫,但不属于官方正式术语。
示例代码:
from("rest:post:bin") .removeHeader(Exchange.HTTP_URI) .setHeader("CamelHttpMethod", constant("POST")) .to("http://httpbin.org/anything") .unmarshal().json(JsonLibrary.Gson) .setBody(simple("${body[data]}"))
内容的提问来源于stack exchange,提问作者Ocimar
相关产品推荐
相关产品推荐

