尝试在IntelliJ中运行Spring Batch的快速入门示例
由于我希望深入学习Spring Batch,所以我在IntelliJ上尝试了运行Spring Batch的快速入门。这主要是关于运行快速入门的步骤总结,适合超级初学者。
执行步骤 (shí shī bù
创建一个Maven项目
当阅读了Quick Start后,可以看出可以使用Maven或Gradle来进行操作。本次决定使用Maven,因此将创建一个Maven项目。
-
- 打开IntelliJ,选择[文件]→[新建]→[项目]。
-
- 选择Maven,选择项目SDK,点击[下一步]。
-
- 输入GroupId和ArtifactId,点击[下一步]。
- 输入项目名称和项目位置,点击[完成]。
快速启动的实施和操作验证
在此我们将使用最新版本的Spring Batch,即3.0.7版本。
另外,在快速开始中提到了使用Spring Boot能够提高开发速度,因此我们决定使用它。
步骤1:配置pom.xml
根据Quick Start的内容,在pom.xml的dependencies中添加spring-boot-starter-batch。同时,不要忘记在parent中设置spring-boot-starter-parent。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
</dependency>
</dependencies>
重点
spring-boot-starter-parent是在构建环境中集成Spring Boot提供的基本配置所必需的内容。
由于在Quick Start中没有这个parent的设置,所以需要额外添加。
配置示例是从Spring Boot的Quick Start中借用的。
步骤2. 实现Configuration类
创建一个名为Configuration的类来设置作业。
基本上,按照快速入门的内容创建一个类,然后将其复制粘贴。
@Configuration
@EnableBatchProcessing
@EnableAutoConfiguration
public class BatchConfiguration {
@Autowired
private JobBuilderFactory jobBuilderFactory;
@Autowired
private StepBuilderFactory stepBuilderFactory;
@Bean
public Step step1() {
return stepBuilderFactory.get("step1")
.tasklet(new Tasklet() {
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) {
return null;
}
})
.build();
}
@Bean
public Job job(Step step1) throws Exception {
return jobBuilderFactory.get("job1")
.incrementer(new RunIdIncrementer())
.start(step1)
.build();
}
}
第3步。实现Main类。
实现一个执行 Job 的 Main 类。这里也将复制粘贴 Quick Start 的内容。
public class Main {
public static void main(String [] args) {
System.exit(SpringApplication.exit(SpringApplication.run(
BatchConfiguration.class, args)));
}
}
执行步骤4。

看起来是因为未定义DB驱动程序而显示这样的结果。
因此,请在pom.xml中添加DB驱动程序并准备好DB连接信息定义文件。
这次我们将使用H2作为例子。
<dependencies>
<!-- 省略 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
</dependencies>
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:batch;DB_CLOSE_DELAY=-1
spring.datasource.username=sa
spring.datasource.password=

在设置与数据库相关的设定比较繁琐的情况下,您可以通过注释掉@EnableAutoConfiguration注解来避免错误。
最后
我第一次投稿了。
以后我想要以Spring Batch为主题发布各种内容。