Spring batch自定义LineMapper实现特殊文本的处理

本文介绍了在Spring Batch中遇到的空行处理问题。默认的DefaultLineMapper在遇到空行时会返回空字符串,导致异常。为解决这个问题,作者创建了一个自定义的LineMapper,对空字符串进行特殊处理,避免了异常。此外,文章提到这个方法也可扩展以处理更复杂的需求,如过滤特定字符行或文本替换。
摘要由CSDN通过智能技术生成

spring-batch是Java Spring的的批处理框架,而且提供了简单的文本处理功能。

下面的的例子,实现了对文本的下载和处理的流程。

 

<!-- Tasks分多个Task,Task启动job,job分为step -->
	<batch:job id="wxJob" job-repository="jobRepository" restartable="true" >
    	<batch:step id="downloadWxFile" next="analyseInfo">
    		<batch:tasklet>
    			<bean class="com.secondgame.demo_service.demo.batch.task.WxDownloadStep" scope="step">
    				<property name="filenamePrefix" value="#{jobParameters['filenamePrefix']}"></property>
    				<property name="date" value="#{jobParameters['date']}"></property>
    				<property name="datetime" value="#{jobParameters['datetime']}"></property>
    				<property name="workpath" value="#{jobParameters['workpath']}"></property>
    				<property name="filename" value="#{jobParameters['filename']}"></property>
    			</bean>
    		</batch:tasklet>
    	</batch:step>
    	<batch:step id="analyseInfo">
    		<!-- <bean class="com.secondgame.demo_service.demo.batch.task.depositor.LoadStep" scope="step">
    		</bean> -->
	    	<batch:tasklet transaction-manager="transactionManager">
	    		<batch:chunk reader="wxReader" writer="wxWriter" commit-interval="10">
	    		</batch:chunk>
    		</batch:tasklet>
    	</batch:step>
    </batch:job>
    
    <!-- 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&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值