gpt4 book ai didi

java - Java DSL 中的 Apache Camel URI 过滤器

转载 作者:行者123 更新时间:2023-12-01 09:09:57 25 4
gpt4 key购买 nike

所以也许我错过了一些明显的东西,这很有可能!

但是,我想将一条路由从 Spring 迁移到 Java。这条路线是这样的:

<bean id="myFilter" class="my.filter.MyFilter />
<route>
<from uri="ftp://someplace?filter=#myFilter" />
<to uri=(....) />
</route>

当转换为 Java DSL 时,我认为以下内容是等效的,但事实并非如此。我的行为与我想象的不同:

MyFilter m = new MyFilter();
.........
from("ftp://someplace")
.filter().method(m)
.to(....)
;

上面的方式似乎是从FTP服务器上检索文件,然后逐个过滤。

而 Spring 方式,在 URI 中使用过滤器选项,似乎首先过滤掉我不想要的所有结果,然后继续其快乐的小方式。

有没有办法重新创建过滤器的功能作为 Java DSL 中 URI 的一部分?

我假设我必须以某种方式声明一个 bean 才能使用它,但我找到的文档似乎并不清楚如何实现这一点。

最佳答案

您应该能够执行以下操作:

from("ftp://someplace?filter=#MyFilter").to("somewhere");

但是您需要将 MyFilter 添加到注册表,或者如果您使用蓝图,请将其添加为 bean,如下所示:

<bean id="myFilter" class="com.mycompany.MyFileFilter"/>

或者在此处查看如何在纯 java 中执行此操作: http://camel.465427.n5.nabble.com/Adding-File-name-filter-for-RouteEndpointDefinition-td4968230.html

Camel how to add something to registry - with java, in general

关于java - Java DSL 中的 Apache Camel URI 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40980913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com