大家都知道,传统Spring-batch能够很好的处理批量任务,其中,提供的trunk组件(batch:trunk)能够处理行文本或者数据库的普通读写操作。下面这个例子可以读写基本的规范数据文件:
<batch:step id="analyseInfo"> <batch:tasklet transaction-manager="transactionManager"> <batch:chunk reader="wxReader" writer="wxWriter" commit-interval="10"></batch:chunk> </batch:tasklet> </batch:step> <!-- wx Detail --> <bean id="wxReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step"> <property name="resource" value="file:#{jobParameters['filename']}"></property> <property name="encoding" value="UTF-8"></property> <property name="comments" value="#{'#'}"></property> <property name="lineMapper" ref="wxMapper"></property> <property name="linesToSkip" value="1"></property> </bean> <bean id="wxWriter" class="com.secondgame.demo_service.demo.batch.task.WxWriter" scope="step">
上述代码中,wxReader负责解析源文件:
resource配置源文件的地址,
encoding配置文件的编码方式,
comments配置注释行的开头,可以跳过注释行,本文例子跳过以#开头的注释行,不进行处理
lineMapper负责具体的处理文件的类,后文会介绍
lineTo