Spring Batch的配置文件解读

Batch configuration



	
	
	(...)
	

配置验证器:

,用来校验工作参数(job parameters),可以实现JobParametersValidator接口。

如果无法通过验证,会抛出JobParametersInvalidException异常。spring batch提供了一个默认的实现类DefaultJobParametersValidator,完成绝大部分的工作。如果还是无法满足需求,可以自己编码实现接口。

实例:


	(...)
	


	
		
			date
		
	
	
		
			productId
		
	

Step listener:

Step listener 作为tasklet标签的一个子标签进行配置。用来跟踪step的处理过程。

    
      
        
        
          
        
      
    
  stepLogListener" class="test.StepLogListener"
    scope="step">
    
    
  

利用监听来出力step执行前后的Log

注意:listeners标签,提供merge属性,可以用来合并parent和自身的listener

并行的Step:

多个step之间的并行化,可以提高批处理的效率。什么情况下可以应用step之间的并行化,那就要根据具体的业务需求来定。那我们假设有这样一种场景:有一类数据,分别存在于文件和数据库,数据的内容一样,只是形式不一样,那么我们可以定义并行的step来分别处理来自文件的数据和来自数据库的数据,然后,分别进行同样的processor,然后写入数据库。

    
    
    
        
            
                
                    
                        
                    
                
            
            
                
                    
                        
                    
                
            
        
    

task-executor指定了一个异步任务执行器 SimpleAsyncTaskExecutor,该执行器将会按照配置创建指定数目的线程来进行数据处理。通过这种方式,避免了我们手动创建并管理线程的工作,使我们只需要关注业务处理本身。

表 1. 任务执行器列表

 

类名 描述 是否异步
SyncTaskExecutor  简单同步执行器
ThrottledTaskExecutor  该执行器为其他任意执行器的装饰类,并完成提供执行次数限制的功能 视被装饰的执行器而定
SimpleAsyncTaskExecutor  简单异步执行器,提供了一种最基本的异步执行实现
WorkManagerTaskExecutor  该类作为通过 JCA 规范进行任务执行的实现,其包含 JBossWorkManagerTaskExecutor 和 GlassFishWorkManagerTaskExecutor 两个子类
ThreadPoolTaskExecutor  线程池任务执行器


参考资料:

http://kanpiaoxue.iteye.com/blog/1770683

http://my.oschina.net/xinxingegeya/blog/344720

http://www.ibm.com/developerworks/cn/java/j-lo-springbatch2/

你可能感兴趣的:(java,springBatch,spring,batch,技术-java)