Skip to content

Commit

Permalink
Spring batch 테스트
Browse files Browse the repository at this point in the history
  • Loading branch information
chobeebee committed Jul 2, 2024
1 parent f3dd16b commit 61b300d
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 0 deletions.
8 changes: 8 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ configurations {
compileOnly {
extendsFrom annotationProcessor
}
all {
exclude group: 'commons-logging', module: 'commons-logging'
}
}

repositories {
Expand Down Expand Up @@ -52,6 +55,11 @@ dependencies {
implementation 'io.jsonwebtoken:jjwt-jackson:0.11.5'

implementation 'org.springframework.boot:spring-boot-starter'

//Spring Batch
implementation 'org.springframework.boot:spring-boot-starter-batch'
//implementation'org.springframework.boot:spring-boot-starter-quartz'
testImplementation 'org.springframework.batch:spring-batch-test'
}

tasks.named('test') {
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/com/sparta/binplay/BinplayApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,13 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;

//@EnableBatchProcessing //배치 기능 활성화 //boot 3.x부터는 필요없음
///@EnableScheduling
@EnableJpaAuditing
@SpringBootApplication
@EnableJpaRepositories(basePackages = {"com.sparta.binplay.repository"})
public class BinplayApplication {

public static void main(String[] args) {
Expand Down
41 changes: 41 additions & 0 deletions src/main/java/com/sparta/binplay/job/SimpleJobConfiguration.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package com.sparta.binplay.job;

import lombok.extern.slf4j.Slf4j;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.job.builder.JobBuilder;
import org.springframework.batch.core.repository.JobRepository;
import org.springframework.batch.core.step.builder.StepBuilder;
import org.springframework.batch.core.step.tasklet.Tasklet;
import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.PlatformTransactionManager;

@Slf4j //log 사용을 위한 lombok 어노테이션
//@RequiredArgsConstructor //생성자 DI를 위한 lombok 어노테이션
@Configuration
public class SimpleJobConfiguration {

@Bean
public Job simpleJob1(JobRepository jobRepository, Step simpleStep1) {
return new JobBuilder("simpleJob", jobRepository)
.start(simpleStep1)
.build();
}

@Bean
public Step simpleStep1(JobRepository jobRepository, Tasklet testTasklet, PlatformTransactionManager platformTransactionManager) {
return new StepBuilder("simpleStep1", jobRepository)
.tasklet(testTasklet, platformTransactionManager) //한 번의 처리
.build();
}

@Bean
public Tasklet testTasklet() {
return ((contribution, chunkContext) -> {
log.info(">>> This is Step1");
return RepeatStatus.FINISHED;
});
}
}

0 comments on commit 61b300d

Please sign in to comment.