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