Java 如何在运行时修改camel端点 问题
我有一个使用的应用程序。我对RouteBuilder类所扮演的角色以及它实际上是如何初始化的感到困惑。我知道,假设configure()方法是: 在初始化时调用,以使用fluent builder语法构建路由 但这种初始化何时发生?它是在应用程序启动时发生的,还是在路由即将使用时发生的 这个问题的最终目的是问我如何在运行时修改路由。我希望能够根据需要建造不同的路线 例子 xml定义:Java 如何在运行时修改camel端点 问题,java,xml,spring,spring-mvc,apache-camel,Java,Xml,Spring,Spring Mvc,Apache Camel,我有一个使用的应用程序。我对RouteBuilder类所扮演的角色以及它实际上是如何初始化的感到困惑。我知道,假设configure()方法是: 在初始化时调用,以使用fluent builder语法构建路由 但这种初始化何时发生?它是在应用程序启动时发生的,还是在路由即将使用时发生的 这个问题的最终目的是问我如何在运行时修改路由。我希望能够根据需要建造不同的路线 例子 xml定义: <service name="myService" tier="3"> <reques
<service name="myService" tier="3">
<requestType>my.package.RequestType</requestType>
<responseType>my.package.ResponseType</responseType>
<endpoint>
<httpEndpoint>
<url default="true" value="someUrl"/>
<timeout value="5000"/>
</httpEndpoint>
</endpoint>
</service>
问题
- configure()何时执行李>
- 如何动态设置端点url李>
当上下文开始时,各种组件开始。不确定我是否理解动态url部分。如果要指示一个动态端点(如果数据是this,那么queue1或queue2),您应该能够使用类似于DynamicRouter EIP的东西,如本文所述()您可以使用toD在运行时基于表达式动态更改端点。看
如果您想更改更多的路由或添加一个全新的路由,请查看上下文中的API。这是一个添加全新路线的示例。您有几个选项
.toD(“$header.routeEndpoint”)
中。这可以处理动态端点
要重建整个路线,您需要使用API
public class myRouteBuilder extends RouteBuilder {
@Override
public void configure() throws Exception {
// When does this method get executed?
}
}