我在网上搜索了一些我认为很简单但显然并非如此的东西,但没有运气。
我想做的就是在 Camel 路由中调用的方法中创建一个 HashSet,然后将此 HashSet 传递给另一个 Camel 路由中的方法。
我的搜索返回的是我应该使用缓存,但我找不到任何示例(一个简单的示例)来向我展示如何实现这一点。
第一个路由中的方法“findProperties”创建了一个 HashSet,我想在“parseFile”方法的第二个路由中使用它。
from("file:{{List}}?noop=true")
.autoStartup(true)
.unmarshal().csv()
.to("bean:ParserUtils?method=findProperties")
.end();
from("file:{{Path}}?move={{processedPath}}")
.autoStartup(true)
.unmarshal().csv()
.to("bean:Parser?method=parseFile")
.end()
我真的很感激在缓存中获取和设置对象的简单示例或其他解决方案。
最佳答案
由于您的第一条路线不会调用第二条路线,因此它们之间没有消息传递来传递数据...所以是的,您需要使用一些外部手段来访问路线/线程之间共享的数据.. .
这可以像 ParserUtils 实例中的类/静态级别变量一样简单或使用 camel-cache (ehcache等),camel-hazelcast等等...选择权在你
这里有一些使用camel-cache的例子...
关于java - 如何在不同 Camel 路线上的方法之间共享对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21681773/