我正在尝试观察文件夹树中是否有新文件,而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

10-07 12:17