从文件系统为 Spring 批处理 reader 设置资源

Setting a resource for Spring Batch reader from file system

我想调整我的代码使 Spring Batch reader 不从 class 路径读取资源文件,而是从文件系统(如 C:\inputData.xml ).有没有什么办法,怎么做到的?我当前的代码看起来像这样,并从资源文件夹中读取给定的 xml 文件就好了:

@Bean
ItemReader<FamilyBatchEntity> xmlFamilyFileItemReader() {
    StaxEventItemReader<FamilyBatchEntity> xmlFileReader = new StaxEventItemReader<>();
    xmlFileReader.setResource(new ClassPathResource("inputData.xml"));
    xmlFileReader.setFragmentRootElementName("Familiendetails");

    Jaxb2Marshaller insurantMarshaller = new Jaxb2Marshaller();
    insurantMarshaller.setClassesToBeBound(FamilyBatchEntity.class);
    xmlFileReader.setUnmarshaller(insurantMarshaller);

    return xmlFileReader;
}

将您的 ClassPathResource 更改为 FileSystemResource 并传入路径。您可以在此处的文档中阅读有关 FileSystemResource 的更多信息:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/io/FileSystemResource.html