从文件系统为 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
我想调整我的代码使 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