我试图建立一个解析器大型XML文件,所以我想借的SpringBatch框架特性来对其进行分区。
我是新来这个框架,却没有找到任何文件或我怎么能做到这一点的任何例子。所以,我会很高兴,如果有人可以给我任何方向。
有没有分区的任何可能性,该文件由它的XML的直接孩子?例如:
sample.xml中(1GB)
<students>
<student>
<name>Sirius Black</name>
<phone>123</phone>
</student>
<student>
<name>Tom Riddle</name>
<phone>349</phone>
</student>
<student>
<name>Severus Snape</name>
<phone>934</phone>
</student>
</students>
我研究的例子约试图分割平面文件,但是我怎么可以用XML文件做呢?
PD:该XML文件的直接孩子将是“学生”
要使用你需要有多个输入文件MultiResourcePartitioner
。
我想借的SpringBatch框架特性来对其进行分区。
请注意,Spring Batch的不带分割文件的照顾。它是由你做这项工作的前期(例如使用SystemCommandTasklet
)。不过,将一个巨大的XML文件分割成多个文件是不是因为这样做是为了一个平面文件(与split command为例)一样简单。因此,使用与Spring Batch的分区技术,如果你设法拆分XML文件是唯一可能的。
我建议先从Multi-Threaded step,看看你得到的结果/性能,你的期望。
类似的问题可以在这里找到:Parse-load huge XML using Spring Batch framework