使用Spring Integration 4.2.0,它提到了' filter'和'储物柜'如果正在使用自定义扫描程序(https://jira.spring.io/browse/INT-3619),则必须存在。
如果我只是覆盖listEligibleFiles()
方法并使用DefaultDirectoryScanner
提供的默认过滤器,我就不知道如何使用XML配置进行设置。
e.g。
// using the default filters
public class MyDirectoryScanner extends DefaultDirectoryScanner {
@Override
protected File[] listEligibleFiles(File directory) throws IllegalArgumentException {
return super.listEligibleFiles(directory);
}
}
<bean id="myCustomScanner"
class="com.company.MyDirectoryScanner" />
<int-file:inbound-channel-adapter directory="my_directory"
prevent-duplicates="true"
scanner="myCustomScanner"
channel="myChannel">
<int:poller fixed-rate="10"
time-unit="SECONDS" max-messages-per-poll="5" />
</int-file:inbound-channel-adapter>
答案 0 :(得分:0)
不清楚你的意思; JIRA修复了错误覆盖这些属性的错误。
注入自定义扫描程序时,需要在扫描程序上设置这些属性,而不是通过命名空间。
答案 1 :(得分:0)
使用DefaultDirectoryScanner提供的默认过滤器。
DefaultDirectoryScanner
的代码为:
public DefaultDirectoryScanner() {
final List<FileListFilter<File>> defaultFilters = new ArrayList<FileListFilter<File>>(2);
defaultFilters.add(new IgnoreHiddenFileListFilter());
defaultFilters.add(new AcceptOnceFileListFilter<File>());
this.filter = new CompositeFileListFilter<File>(defaultFilters);
}
因此,如果您不想使用AcceptOnceFileListFilter
(或任何其他默认设置),则应遵循文档中的建议并使用setFilter()
合同的DirectoryScanner
。为此,FileListFilterFactoryBean
setPreventDuplicates()
设置为false
。
是的,请从您的配置中移除prevent-duplicates="true"
,因为在scanner
正在使用时禁止使用
Assert.state(!(this.scannerExplicitlySet && (this.filter != null || this.locker != null)),
"The 'filter' and 'locker' options must be present on the provided external 'scanner': "
+ this.scanner);
顺便说一下,filter
null
可以DefaultDirectoryScanner
设置为Documentation
。
我将JIRA转换为def poundsToMetricFunction(kilograms, grams):
pounds = float(input("enter the amount of pounds: ")
kilograms = pounds * 2.2
grams = kilograms * 1000
print('The amount of pounds you entered is ', pounds,
' This is ', kilograms, ' kilograms ', 'and', grams,
'grams' )
只是为了更清楚这件事。