Java can';是否在文件中设置其他筛选器:入站通道适配器和扫描仪?
下面是我的Spring集成配置的一部分:Java can';是否在文件中设置其他筛选器:入站通道适配器和扫描仪?,java,spring-integration,Java,Spring Integration,下面是我的Spring集成配置的一部分: <bean id="recursiveScanner" class="org.springframework.integration.file.RecursiveLeafOnlyDirectoryScanner" > <property name="filter" ref="skipTmpFileFilter" /> </bean> <bean id="skipTmpFileFilter" class=
<bean id="recursiveScanner" class="org.springframework.integration.file.RecursiveLeafOnlyDirectoryScanner" >
<property name="filter" ref="skipTmpFileFilter" />
</bean>
<bean id="skipTmpFileFilter" class="org.springframework.integration.file.filters.RegexPatternFileListFilter">
<constructor-arg value="^[^~].*"/>
</bean>
<file:inbound-channel-adapter directory="${inbound.folder}"
scanner="recursiveScanner"
id="fileChannel"
filter="fileNameFilter">
<integration:poller id="poller" fixed-delay="10000" />
</file:inbound-channel-adapter>
如您所见,我想定义两个不同的过滤器:
- 一个用于跳过recursiveScanner中的临时文件
- 还有一个更高级的模式,我在其中定义了一些其他模式,fileNameFilter(其中的细节不相关,所以我不提供)
Vincent如果我们看一下
FileReadingMessageSource
的源代码,我们会看到:
public void setFilter(FileListFilter<File> filter) {
Assert.notNull(filter, "'filter' must not be null");
this.scanner.setFilter(filter);
}
public void setFilter(FileListFilter过滤器){
Assert.notNull(过滤器,“'filter'不能为null”);
this.scanner.setFilter(filter);
}
对于文件读取消息源
,在过滤器
周围没有更多的内容。一切都委托给目录扫描程序
因此,没有任何选择,除非只提供一个filter
选项:或者为DirectoryScanner
bean,或者
是的:要设置多个过滤器,您应该使用CompositeFileListFilter
然而,我认为我们可以保护覆盖案例的这一点
请随时就此事提出问题。谢谢您的快速回答!吉拉创造了: