从文件系统为Spring Batch阅读器设置资源

时间:2016-07-18 15:56:28

标签: java spring classpath spring-batch

我想调整我的代码,使Spring Batch reader不是从类路径读取资源文件,而是从文件系统(如C:\ inputData.xml)读取资源文件。有什么办法,怎么做?我当前的代码看起来像这样,并从resources文件夹中读取给定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;
}

1 个答案:

答案 0 :(得分:5)

将您的ClassPathResource更改为FileSystemResource并传递路径。您可以在此处的文档中详细了解FileSystemResourcehttp://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/io/FileSystemResource.html