Job 실행 관련 프로퍼티
- spring.batch.job.enabled : application context 에 등록된 Job 을 실행을 활성화하는 프로퍼티
- true (default) : Job 을 실행 가능하도록 활성화 / false : 모든 Job 을 실행 불가능하도록 설정
- spring.batch.job.name : 실행할 배치 Job 을 job name 을 기준을 기반으로 선언
- spring.batch.job.name=
- 값이 없으면 모든 잡을 실행 (spring batch 5.x 부터 exception 반환하며 실행하지 않음.)
- spring.batch.job.name=jobName1
- jobName1 이름의 잡만 실행하겠다는 의미
- spring.batch.job.name=jobName1,jobName2
- spring batch 4.x : 해당 job name 의 multiple batch job 을 실행
- spring batch 5.x : multiple batch job 을 제공하지 않아 IllegalArgumentException 발생
- spring.batch.job.name=${job.name:NONE}
- spring.batch.job.name 에 값이 없으면 모든 잡 실행
- ${job.name:NONE} : job.name 이 존재하면 특정 잡만 실행하고, job.name 에 값이 없으면 실행하지 않게 설정
- spring.batch.job.name=
Spring Batch Job test argument 설정 방법
- @SpringBootTest 의 args option 활용
@SpringBatchTest
@SpringBootTest(args = "--job.name=memberDeleteJob")
public class MemberBatchTest {
@Autowired
private JobLauncherTestUtils jobLauncherTestUtils;
@Autowired
private JobRepositoryTestUtils jobRepositoryTestUtils;
@AfterEach
public void cleanUp() {
jobRepositoryTestUtils.removeJobExecutions();
}
@Test
public void testJob(@Autowired @Qualifier("memberDeleteJob") Job job) throws Exception {
this.jobLauncherTestUtils.setJob(job);
JobExecution jobExecution = jobLauncherTestUtils.launchJob();
Assertions.assertThat(jobExecution.getExitStatus().getExitCode()).isEqualTo(ExitStatus.COMPLETED.getExitCode());
}
}
@JobScope, @StepScope

- Scope
- 스프링 컨테이너에서 빈이 관리되는 범위
- singleton, prototype, request, sessino, application 이 존재하며 기본은 singleton.
- @JobScope , @StepScope
- Job 과 Step 의 빈 생성과 실행에 관여하는 스코프
- proxy 모드로 기본 값으로 하는 스코프
- @JobScope
- Step 선언문에 정의한다.
- @Value : jobParameter, jobExecutionContext 만 사용 가능
- @StepScope
- Tasklet 이나 ItemReader, ItemWriter, ItemProcessor 선언문에 정의한다.
- @Value : jobParameter, jobExecutionContext, stepExecutionContext 사용 가능
Reference
- spring batch 특정
- spring.batch.job.name
- spring batch test
'spring > summary' 카테고리의 다른 글
[kurly tech blog] Redisson, Spring AOP 기반 분산락 적용 방법 summary (0) | 2024.11.26 |
---|---|
Spring Batch 기반 회원 삭제 배치 삽질 기록 (0) | 2024.09.03 |
Spring Batch Architecture (0) | 2024.05.10 |
hibernate.query.in_clause_parameter_padding = true ? (1) | 2024.03.06 |
JPA 에 UUID version 7 적용하기 (0) | 2024.03.04 |
Job 실행 관련 프로퍼티
- spring.batch.job.enabled : application context 에 등록된 Job 을 실행을 활성화하는 프로퍼티
- true (default) : Job 을 실행 가능하도록 활성화 / false : 모든 Job 을 실행 불가능하도록 설정
- spring.batch.job.name : 실행할 배치 Job 을 job name 을 기준을 기반으로 선언
- spring.batch.job.name=
- 값이 없으면 모든 잡을 실행 (spring batch 5.x 부터 exception 반환하며 실행하지 않음.)
- spring.batch.job.name=jobName1
- jobName1 이름의 잡만 실행하겠다는 의미
- spring.batch.job.name=jobName1,jobName2
- spring batch 4.x : 해당 job name 의 multiple batch job 을 실행
- spring batch 5.x : multiple batch job 을 제공하지 않아 IllegalArgumentException 발생
- spring.batch.job.name=${job.name:NONE}
- spring.batch.job.name 에 값이 없으면 모든 잡 실행
- ${job.name:NONE} : job.name 이 존재하면 특정 잡만 실행하고, job.name 에 값이 없으면 실행하지 않게 설정
- spring.batch.job.name=
Spring Batch Job test argument 설정 방법
- @SpringBootTest 의 args option 활용
@SpringBatchTest
@SpringBootTest(args = "--job.name=memberDeleteJob")
public class MemberBatchTest {
@Autowired
private JobLauncherTestUtils jobLauncherTestUtils;
@Autowired
private JobRepositoryTestUtils jobRepositoryTestUtils;
@AfterEach
public void cleanUp() {
jobRepositoryTestUtils.removeJobExecutions();
}
@Test
public void testJob(@Autowired @Qualifier("memberDeleteJob") Job job) throws Exception {
this.jobLauncherTestUtils.setJob(job);
JobExecution jobExecution = jobLauncherTestUtils.launchJob();
Assertions.assertThat(jobExecution.getExitStatus().getExitCode()).isEqualTo(ExitStatus.COMPLETED.getExitCode());
}
}
@JobScope, @StepScope

- Scope
- 스프링 컨테이너에서 빈이 관리되는 범위
- singleton, prototype, request, sessino, application 이 존재하며 기본은 singleton.
- @JobScope , @StepScope
- Job 과 Step 의 빈 생성과 실행에 관여하는 스코프
- proxy 모드로 기본 값으로 하는 스코프
- @JobScope
- Step 선언문에 정의한다.
- @Value : jobParameter, jobExecutionContext 만 사용 가능
- @StepScope
- Tasklet 이나 ItemReader, ItemWriter, ItemProcessor 선언문에 정의한다.
- @Value : jobParameter, jobExecutionContext, stepExecutionContext 사용 가능
Reference
- spring batch 특정
- spring.batch.job.name
- spring batch test
'spring > summary' 카테고리의 다른 글
[kurly tech blog] Redisson, Spring AOP 기반 분산락 적용 방법 summary (0) | 2024.11.26 |
---|---|
Spring Batch 기반 회원 삭제 배치 삽질 기록 (0) | 2024.09.03 |
Spring Batch Architecture (0) | 2024.05.10 |
hibernate.query.in_clause_parameter_padding = true ? (1) | 2024.03.06 |
JPA 에 UUID version 7 적용하기 (0) | 2024.03.04 |