我正在开发一个迁移实用程序,它从XML读取数据并迁移到ORACLE数据库。
我正在使用Spring Batch。
我的源XML可以在任何位置:
My Spring Batch配置
<batch:job id="reportJob">
<batch:step id="step1">
<batch:tasklet>
<batch:chunk reader="xmlItemReader" writer="oracleDBWriter"
processor="filterReportProcessor" commit-interval="1">
</batch:chunk>
</batch:tasklet>
</batch:step>
</batch:job>
<bean id="filterReportProcessor" class="com.mkyong.processor.FilterReportProcessor" />
<bean id="xmlItemReader" class="org.springframework.batch.item.xml.StaxEventItemReader">
<property name="fragmentRootElementName" value="record" />
<property name="resource" value="classpath:xml/report.xml" />
<property name="unmarshaller" ref="reportUnmarshaller" />
</bean>
我能够读取XML并转储到DB。
其中一个变化是XML文件不是普通格式,它将使用非对称算法(公钥 - 私钥)加密。
所以我想知道我将无法使用 StaxEventItemReader 逐节点读取。 在此之前我不知道如何
我当时希望使用ByteArrayResource但是不能像春天批次那样做,并且没有太多的扩展想法。
请建议。
答案 0 :(得分:1)
Spring Batch目前在阅读时不支持解密。因此,在处理文件之前,您需要单独执行解密文件的步骤。显然,一旦处理完成,您将需要围绕删除解密文件的适当控制。