ItemProcessor returns 资源中的 ResourceAware 实现为 Null

ResourceAware Implementation in ItemProcessor returns resource as Null

我知道我问的问题在这里已经被问过很多次了。但即使在参考了这些答案之后,我的问题还没有 solved.So 我再次发布

我需要读取 ItemProcessor 中当前正在处理的资源的名称。为此,我正在尝试使用 ResourceAware 标记接口,它具有我们需要实现的 setResource 方法。根据我的阅读,如果我们使用 MultiResourceItemReader,则应该调用 ResourceAware 的 setResourceMethod,这样我们就可以获得对当前正在处理的项目的引用。但由于某种原因,这并没有发生。请找到我的以下配置

<step id="readChatLogsData">
<tasklet>
    <chunk reader="multiResourceReader" processor="chatProcessor" writer="mongodbItemWriter" commit-interval="100">
    </chunk>
</tasklet>
</step>

<beans:bean id="multiResourceReader" class="org.springframework.batch.item.file.MultiResourceItemReader" scope="step">
    <beans:property name="resources" value="file:*.log" />
    <beans:property name="delegate" ref="chatReader" />
</beans:bean>


<beans:bean id="chatReader" class="org.springframework.batch.item.file.FlatFileItemReader">
    <beans:property name="lineMapper" ref="tickerLineMapper" />
</beans:bean>
<beans:bean id="tickerLineMapper"
    class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
    <beans:property name="fieldSetMapper" ref="chatMapper" />
    <beans:property name="lineTokenizer" ref="tickerLineTokenizer" />
</beans:bean>
<beans:bean id="tickerLineTokenizer"
    class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
    <beans:property name="delimiter" value="^A" />
    <beans:property name="names" value="A,B,C" />
</beans:bean>

public class ChatProcessor  implements ItemProcessor<SingleChatFileInput,String>, ResourceAware

如果我在这里做错了什么或者我遗漏了什么,请告诉我。 也请提出是否有任何其他方法可以实现此目的。

Marker interface indicating that an item should have the Spring Resource in which it was read from, set on it.

ResourceAware 接口应该由 chatReader 返回的对象实现(我认为 SingleChatFileInput),而不是 ItemProcessor.