camel动态加载route

camel的路由规则加载默认使用xml或java方法来创建,但这2个方法不能够动态加载路由,查看camel的源码发现,可以通过路由规则字符串来动态的加载。

假设需要加载的路由如下


    
        
        
        
        
        
    

将上诉的路由信息转为字符串,然后通过下面的代码进行动态加载

InputStream is = new ByteArrayInputStream(routeXml.getBytes("UTF-8"));
RoutesDefinition xmlDefinition = camelContext.adapt(ModelCamelContext.class).loadRoutesDefinition(is);
camelContext.adapt(ModelCamelContext.class).addRouteDefinitions(xmlDefinition.getRoutes());

上诉代码中,routeXml就是路由规则字符串,其中camelContext 为 CamelContext对象,spring注入即可

你可能感兴趣的:(Camel)