我正在尝试观察文件夹树中是否有新文件,而WatchServiceDirectoryScanner似乎正是我所需要的,但是如果没有一个储物柜,而没有引发BeanCreationException,我将无法启动配置。我该如何告诉我不要储物柜?
<bean id="myScanner" class="org.springframework.integration.file.WatchServiceDirectoryScanner">
<constructor-arg value="/my/path"/>
<property name="filter" ref="onceFilter"/>
<property name="locker"><null/></property>
</bean>
<bean id="onceFilter" class="org.springframework.integration.file.filters.AcceptOnceFileListFilter"/>
我不想锁定文件。我真的需要实现自定义的NonLockingLocker吗?
最佳答案
查看日志消息:
所提供的外部“扫描器”上必须存在“过滤器”和“储物柜”选项:org.springframework.integration.file.WatchServiceDirectoryScanner@7b12e52f
也就是说,如果使用filter
选项,则不必在filename-pattern
上使用locker
(<int-file:inbound-channel-adapter>
等)和scanner
选项。
因此,只需将其引用移至WatchServiceDirectoryScanner
。
当然,如果您没有locker
,则没有理由创建一些NoOpLocker
。只是不要在<property name="locker">
bean定义上声明WatchServiceDirectoryScanner
。