Apache camel 使用SpringXML动态重新加载CamelContext

Apache camel 使用SpringXML动态重新加载CamelContext,apache-camel,Apache Camel,从SpringXML加载整个Camel上下文(而不是动态重新加载路由)是一种好的做法吗。下面的代码片段似乎是从文件系统(基于FileWatch服务)加载更新的驼峰上下文。建议这样做吗 // Detect file modification... camelContext.stop(); camelContext.destroy(); ((AbstractApplicationContext)applicationContext).close(); SpringCamelContext.se

从SpringXML加载整个Camel上下文(而不是动态重新加载路由)是一种好的做法吗。下面的代码片段似乎是从文件系统(基于FileWatch服务)加载更新的驼峰上下文。建议这样做吗

// Detect file modification... 

camelContext.stop();
camelContext.destroy();
((AbstractApplicationContext)applicationContext).close();

SpringCamelContext.setNoStart(true);
applicationContext = new ClassPathXmlApplicationContext(
   new String[]{CAMEL_CONTEXT_FILE});
camelContext = (SpringCamelContext) applicationContext.getBean("foo-cc");
camelContext.start();

在我看来,在开发过程中,这似乎是可以接受的。通过这种方式,可以重新加载不仅仅是路由,因为SpringBean和配置将被重新加载。现在,是否推荐它将取决于您试图完成的任务以及在什么环境中完成。

是的,我认为我们不会在生产环境中这样做。所以对于开发,我想应该可以使用它。与prod和dev环境中的整个上下文相比,动态加载routes()可能更实际。