Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache camel 自动生成路由ID';骆驼_Apache Camel - Fatal编程技术网

Apache camel 自动生成路由ID';骆驼

Apache camel 自动生成路由ID';骆驼,apache-camel,Apache Camel,在apache camel中,是否有一种方法可以自动生成routeId,并使用路由编号(在RouteDefinitionHelper中生成)覆盖现有的路由ID?您可以直接为路由以及路由中的处理器指定它们 from("direct:start").routeId("MyMainRoute") .to("direct:out").id("MyOutputProcessor"); 这些ID将在jConsole中可见,因此您可以查看路由和处理器的统计信息。据我所知,您无法使用路由命名的自动生成

在apache camel中,是否有一种方法可以自动生成routeId,并使用路由编号(在RouteDefinitionHelper中生成)覆盖现有的路由ID?

您可以直接为路由以及路由中的处理器指定它们

from("direct:start").routeId("MyMainRoute")
    .to("direct:out").id("MyOutputProcessor");

这些ID将在jConsole中可见,因此您可以查看路由和处理器的统计信息。

据我所知,您无法使用路由命名的自动生成策略,但您可以执行类似的操作:

private String myURI;

from("jms:queue:" + myURI).routeId("JmsComponent:" + myURI)
    .to("....");

通过使用blueprint或spring之类的工具将变量注入java类,您可以更改URI,并相应地调整路由名称。您还可以在私有变量中使用完整的URI,然后自己解析endpointURI并将其格式化为routeId。

您可以在定义路由时编写自己的路由id,强烈建议您也使用一个路由id。我可以知道更改默认路由id的意图吗?我希望约定的格式为route:。因此,在上下文中的所有路由中,我可以很好地识别它们。我希望代码精确且不太冗长,即使不提供routeId,我也应该使用上述格式生成一个。我不确定是否要在内部自定义驼峰路由名称。我觉得在配置后命名路由是一种更好的做法。这很好,但我希望我的路由自动生成其自己的特定格式的RouteId路由::。我相当确定没有现有的方法来设置自动生成策略。对于每个路由,您可以同时设置from url和路由url。如果多次复制单个路由,那么可以使用该路由创建父bean,并为from uri和routeId使用单个变量。除此之外,我认为您的想法还不错,您可能希望将此作为功能改进请求打开。