尝试使用Apache Camel组件创建传输文件的通用路由。
情境:
我们有什么方法可以从端点到端点,它可以从属性读取源和目标配置并路由文件?
在这种情况下,如果我们需要添加更多的源和目标,我们只需要更改属性文件。我知道我们不能在Apache Camel中拥有来自端点的动态。
示例:
{server1-file1} - camel route(Generic) - {server2-file1}
{server1-file1} - camel route(Generic) - {server2-file1}
{server1-file1} - camel route(Generic) - {server2-file1}
答案 0 :(得分:1)
要解决此特定问题,请在Java中创建一个Camel路由,允许您注入起始URI和结束URI。这个想法叫做路由模板。一个例子是:
public class FtpTemplateRoute extends RouteBuilder {
private String startUri;
private String endUri;
public FtpTemplateRoute(String startUri, String endUri) {
this.startUri = startUri;
this.endUri = endUri;
}
public void configure() {
from(startUri)
...
.to(endUri);
}
}
当您设置CamelContext
时,您可以将X实例化X次:
CamelContext context = new DefaultCamelContext();
context.addRoutes(
new FtpTemplateRoute("ftp:///dirA", "ftp:///dirB"));
context.addRoutes(
new FtpTemplateRoute("ftp:///dirC", "ftp:///dirD"));
由您决定如何加载源和目标uris。