我正在使用春季批次,需要一些关于如何进行的建议....
我有一个加密文件,需要解密并存储在内存中(而不是文件)。解密后,我想使用块读取器使用spring batch的块读取器-处理器逐行处理解密的文件。
如何配置块读取器/解析内存流?
我正在使用春季批次,需要一些关于如何进行的建议....
我有一个加密文件,需要解密并存储在内存中(而不是文件)。解密后,我想使用块读取器使用spring batch的块读取器-处理器逐行处理解密的文件。
如何配置块读取器/解析内存流?
正如前面答案中所说的 bellabax,使用 Tasklet解密您的文件,并将解密的文件路径存储在您的 Job Context 中:
ExecutionContext jobExecutionContext = chunkContext.getStepContext().getStepExecution().getJobExecution().getExecutionContext();
jobExecutionContext.putString("decryptedFilePath", decryptedFilePath);
在工作上下文中添加工作的解密文件资源(不要忘记工作范围):
<bean id="decryptedFileResource" class="org.springframework.core.io.FileSystemResource" scope="step">
<constructor-arg value="#{jobExecutionContext['decryptedFilePath']}" />
</bean>
最后使用Chunk
with 作为读取器的FlatFileItemReader指向您的decryptedFileResource,并作为写入器将您的数据存储在内存中的自定义写入器。
希望能帮到你。
您可以分两步进行:
byte[]
)Tasklet
FlatFileItemReader
,使用基于您的byte[]
(如ByteArrayResource
)作为输入的新创建资源作为阅读器的资源(作为替代,您可以编写自定义阅读器)