在遵循了不同的教程之后,我来到了这段代码,但是当我运行它时,抛出的异常路径不能为空。
@Bean
@Scope(value = "step", proxyMode = ScopedProxyMode.TARGET_CLASS)
public FlatFileItemReader<Person> importReader(@Value("#{jobParameters[pathToFileName]}") String pathToFile) {
FlatFileItemReader<Person> reader = new FlatFileItemReader<>();
reader.setResource(new FileSystemResource(pathToFile));
reader.setLineMapper(new DefaultLineMapper<>() {{
setLineTokenizer(new DelimitedLineTokenizer() {{
setNames("firstName", "lastName", "email");
}});
setFieldSetMapper(new BeanWrapperFieldSetMapper<>() {{
setTargetType(Person.class);
}});
}});
return reader;
}
其余控制器的代码为
String path = new ClassPathResource("tmpuploads/").getURL().getPath();
File fileToImport = new File(path + multipartFile.getOriginalFilename());
JobExecution jobExecution = jobLauncher.run(importUserJob, new JobParametersBuilder()
.addString("pathToFileName", fileToImport.getAbsolutePath())
.toJobParameters());