Spring Batch Get Started with IDEA
Spring Batch with IDEA
Create Spring Batch with IntelliJ.
It’s almost same as
- Create simple job with Spring Batch
- Use Mysql as default dataSource
Preparation
build.gradle
Prepare build.gradle for gradle project
buildscript { repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.0.RELEASE") } } apply plugin: "java" apply plugin: "spring-boot" apply plugin: "idea" idea { module { inheritOutputDirs = false outputDir = file("$buildDir/classes/main/") } } jar { baseName = "SpringBatchSample" version = "0.0.1-SNAPSHOT" } repositories { mavenCentral() } dependencies { compile('org.springframework.boot:spring-boot-starter-batch') compile('mysql:mysql-connector-java:5.1.40') testCompile("org.springframework.boot:spring-boot-starter-test") }
Create source folders
mkdir -p src/main/java mkdir -p src/main/resources mkdir -p src/test/java
Create IntelliJ project using gradle command
gradle idea
Import Project
Just open Project from IntelliJ. No special settings.
Example
Project |- src | |- main | |- java | | |- xxxxxx(package) | | |- Main.java | | |- config | | |- SpringBatchConfig.java | |- resources | |- application.yml |- build.gradle
SpringBatchConfig.java
Main.java
@Configuration @EnableBatchProcessing @EnableAutoConfiguration public class SpringBatchConfig { @Autowired private JobBuilderFactory jobBuilderFactory; @Autowired private StepBuilderFactory stepBuilderFactory; @Autowired private DataSource dataSource; @Bean public Step step1() { return stepBuilderFactory.get("step1") .tasklet(new Tasklet(){ public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) { return RepeatStatus.FINISHED; } }) .build(); } @Bean public Step step2() { return stepBuilderFactory.get("step2") .tasklet(new Tasklet(){ public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) { return RepeatStatus.FINISHED; } }) .build(); } @Bean public Job job(Step step1, Step step2) throws Exception { return jobBuilderFactory.get("job1") .incrementer(new RunIdIncrementer()) .start(step1) .next(step2) .build(); } }
application.yml
spring: datasource: driver: com.mysql.jdbc.Driver url: jdbc:mysql://localhost/test username: username password: password
The database name is test.