2015-05-29 83 views
3

在apache-camel中,有沒有辦法自動生成routeId的覆蓋現有路由號(在RouteDefinitionHelper中生成)?自動生成routeId的駱駝

+1

當您定義路線時,您可以編寫自己的路線編號 - 強烈建議您也有編號。我可否知道更改默認路由ID的意圖? – Jayaraj

+0

我希望約定格式爲:。因此,我可以很好地在上下文中的所有這些路由中識別它們。我希望代碼精確且不太冗長,即使沒有給出routeId,我也應該使用上述格式生成一個。 – uttam

+0

我不確定在內部自定義駝峯路由名稱。我覺得一旦你配置完成後,命名你的路由是一種更好的做法。 – Jayaraj

回答

0

您可以直接爲路由指定它們以及路由中的處理器。

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

這些id將在您的jConsole中可見,因此您可以在路由和處理器上看到統計信息。

+0

這很好,但我希望我的路由能夠自動生成自己的RouteId的這種特定格式的路由:。 – uttam

+0

我相當確定沒有現有的方法來設置自動生成策略。對於您的每條路線,您都可以同時設置from url和route url。如果您多次創建單個路由的副本,則可以使用該路由創建一個父Bean,並使用from uri和routeId的單個變量。除此之外,我認爲您的思路並不糟糕,您可能希望將其作爲功能改進請求打開。 –

1

還有就是要盡我所知在routeNaming你可以不使用自動生成的政策,但你可以做一些與此類似:

private String myURI; 

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

使用類似藍圖或春天您的變量注入到Java類,你可以改變你的URI,它會相應地調整路由名稱。您也可以在您的私有變量中使用完整的URI,然後自己解析endpointURI並將其格式化爲routeId。