此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Batch 文档 5.1.2! |
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Batch 文档 5.1.2! |
Spring 3 带来了使用 Java 而不是 XML 配置应用程序的能力。截至
Spring Batch 2.2.0 中,您可以使用相同的 Java 配置来配置批处理作业。
基于 Java 的配置有三个组件:注释和两个构建器。@EnableBatchProcessing
该注释的工作方式类似于
Spring 家族。在这种情况下,为
构建批处理作业。在此基本配置中,和 的实例是
created,此外还有许多 bean 可用于 autowired:@EnableBatchProcessing
@Enable*
@EnableBatchProcessing
StepScope
JobScope
-
JobRepository
:一个名为jobRepository
-
JobLauncher
:一个名为jobLauncher
-
JobRegistry
:一个名为jobRegistry
-
JobExplorer
:一个名为jobExplorer
-
JobOperator
:一个名为jobOperator
默认实现提供前面列表中提到的 bean,并要求 a 和 a 在上下文中作为 bean 提供。数据源和交易
manager 由 和 实例使用。默认情况下,将使用名为 的数据源 和 名为 的事务管理器。您可以使用
注释的属性。以下示例演示如何提供
自定义数据源和事务管理器:DataSource
PlatformTransactionManager
JobRepository
JobExplorer
dataSource
transactionManager
@EnableBatchProcessing
@Configuration
@EnableBatchProcessing(dataSourceRef = "batchDataSource", transactionManagerRef = "batchTransactionManager")
public class MyJobConfiguration {
@Bean
public DataSource batchDataSource() {
return new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.HSQL)
.addScript("/org/springframework/batch/core/schema-hsqldb.sql")
.generateUniqueName(true).build();
}
@Bean
public JdbcTransactionManager batchTransactionManager(DataSource dataSource) {
return new JdbcTransactionManager(dataSource);
}
@Bean
public Job job(JobRepository jobRepository) {
return new JobBuilder("myJob", jobRepository)
//define job flow as needed
.build();
}
}
只有一个 configuration class 需要有 annotation。一次
你有一个用它注释的类,你有前面描述的所有配置。@EnableBatchProcessing |
只有一个 configuration class 需要有 annotation。一次
你有一个用它注释的类,你有前面描述的所有配置。@EnableBatchProcessing |
从 v5.0 开始,配置基本 infrastrucutre bean 的另一种编程方式
通过类提供。此类提供相同的 bean
由 提供,并可用作配置批处理作业的基类。
以下代码片段是如何使用它的典型示例:DefaultBatchConfiguration
@EnableBatchProcessing
@Configuration
class MyJobConfiguration extends DefaultBatchConfiguration {
@Bean
public Job job(JobRepository jobRepository) {
return new JobBuilder("job", jobRepository)
// define job flow as needed
.build();
}
}
数据源和事务管理器将从应用程序上下文中解析 并在 Job repository 和 Job Explorer 上进行设置。您可以自定义配置 通过覆盖所需的 setter 来获取。以下示例 演示如何自定义字符编码,例如:
@Configuration
class MyJobConfiguration extends DefaultBatchConfiguration {
@Bean
public Job job(JobRepository jobRepository) {
return new JobBuilder("job", jobRepository)
// define job flow as needed
.build();
}
@Override
protected Charset getCharset() {
return StandardCharsets.ISO_8859_1;
}
}
@EnableBatchProcessing 不应与 一起使用。您应该
要么使用通过 ,
或使用扩展的编程方式,但不能双向扩展
同一时间。DefaultBatchConfiguration @EnableBatchProcessing DefaultBatchConfiguration |
@EnableBatchProcessing 不应与 一起使用。您应该
要么使用通过 ,
或使用扩展的编程方式,但不能双向扩展
同一时间。DefaultBatchConfiguration @EnableBatchProcessing DefaultBatchConfiguration |