Spring批量输出到绝对文件路径
Spring Batch Output to Absolute File Path
我有一个 Spring 写入 .txt 文件的批处理。它工作得很好,除了一件事。当它在调度程序 (zena) 上 运行s 时,输出文件被写到错误的位置,因为我将路径设置为相对路径。以下是我在 FlatFileItemWriter 中指定输出文件位置的方法:
FlatFileItemWriter<Something> writer = new FlatFileItemWriter<Something>();
writer.setResource(new FileSystemResource(new File("..csv/output.txt")));
当我 运行 没有 调度程序时,文件被写到正确的目录:
/BatchJob/csv/output.txt
但是当我在调度程序上 运行 时,文件被写到:
/Scheduler/Location/csv/output.txt
我尝试使用 classPathResource:
writer.setResource(new ClassPathResource("output.txt", getClass()));
但随后它会根据 class 包的名称尝试将文件写入目录位置。相反,我想将文件写入特定的目录路径位置,而不是基于包名称。
从 属性 文件中读取目录参数并注入您的资源。
我有一个 Spring 写入 .txt 文件的批处理。它工作得很好,除了一件事。当它在调度程序 (zena) 上 运行s 时,输出文件被写到错误的位置,因为我将路径设置为相对路径。以下是我在 FlatFileItemWriter 中指定输出文件位置的方法:
FlatFileItemWriter<Something> writer = new FlatFileItemWriter<Something>();
writer.setResource(new FileSystemResource(new File("..csv/output.txt")));
当我 运行 没有 调度程序时,文件被写到正确的目录:
/BatchJob/csv/output.txt
但是当我在调度程序上 运行 时,文件被写到:
/Scheduler/Location/csv/output.txt
我尝试使用 classPathResource:
writer.setResource(new ClassPathResource("output.txt", getClass()));
但随后它会根据 class 包的名称尝试将文件写入目录位置。相反,我想将文件写入特定的目录路径位置,而不是基于包名称。
从 属性 文件中读取目录参数并注入您的资源。