Skip to content

Latest commit

 

History

History
87 lines (77 loc) · 3.42 KB

File metadata and controls

87 lines (77 loc) · 3.42 KB

12.2 Setup

JSR-352 要用到一个很简单的 path 来执行批处理作业。下面的代码就是执行一个批处理作业所需要的一切:

JobOperator operator = BatchRuntime.getJobOperator();
jobOperator.start("myJob", new Properties());

虽然对于开发人员来说很方便, 但其中的坑可能埋藏在细节中。Spring Batch 在启动时会加载一些基础类, 开发者可能需要重写其中的某些部分。在首次调用 “BatchRuntime.getJobOperator()” 时会加载下面这些对象:

Bean Name Default Configuration Notes
dataSource 配置的 Apache DBCP BasicDataSource 数据库连接池对象. 默认启动了 HSQLDB.
transactionManager org.springframework.jdbc.datasource.DataSourceTransactionManager 引用了上面的 dataSource bean .
A Datasource initializer 用来执行 batch.drop.scriptbatch.schema.script 属性所配置的脚本. 默认是执行 HSQLDB 对应的表结构脚本. 可以通过 batch.data.source.init 属性禁用此行为.
jobRepository 基于 JDBC 的 SimpleJobRepository. JobRepository 对象需要用到上面的数据库连接池以及事务管理器. 对应的表的前缀 (默认是 BATCH_) 是通过 batch.table.prefix 属性来配置的.
jobLauncher org.springframework.batch.core.launch.support.SimpleJobLauncher 用来启动 Jobs.
batchJobOperator org.springframework.batch.core.launch.support.SimpleJobOperator JsrJobOperator 封装了此对象的大部分功能.
jobExplorer org.springframework.batch.core.explore.support.JobExplorerFactoryBean 用于查找定位 JsrJobOperator 提供的功能.
jobParametersConverter org.springframework.batch.core.jsr.JsrJobParametersConverter JobParametersConverter 的 JSR-352 专有实现.
jobRegistry org.springframework.batch.core.configuration.support.MapJobRegistry SimpleJobOperator.使用
placeholderProperties org.springframework.beans.factory.config.PropertyPlaceholderConfigure 加载 properties 文件 batch-${ENVIRONMENT:hsql}.properties 来配置上面提到的属性. ENVIRONMENT 是一个系统属性 (默认值为 hsql), 可以指定为 Spring Batch 支持的任意数据库类型.

###提示

对基于 JSR-352的 job来说,上面的这些 bean 都是必须具备的。d当然,开发者可以根据需要重载某些类,以提供自定义的功能。