본문 바로가기

삽질

@EnableBatchProcessing 사용시 설정 Back Off

Spring batch 5.1 버전 릴리즈 노트에 @EnableBatchProcessing이 자동으로 붙는다고 나와있다.

 

What’s New in Spring Batch 5.1 :: Spring Batch

 

What’s New in Spring Batch 5.1 :: Spring Batch

Embracing JDK 21 LTS is one of the main themes for Spring Batch 5.1, especially the support of virtual threads from Project Loom. In this release, virtual threads can be used in all areas of the framework, like running a concurrent step with virtual thread

docs.spring.io

 

 

@EnableBatchProcessing는 Spring Batch 실행에 필요한 JobRepository, PlatformTransactionManager 등을 빈으로 등록하는 기능을 수행한다.

아직도 Spring Batch 5.1공식 문서에서는 @EnableBatchProcessing를 설명하고 있다.

Java Configuration :: Spring Batch

 

Java Configuration :: Spring Batch

Spring 3 brought the ability to configure applications with Java instead of XML. As of Spring Batch 2.2.0, you can configure batch jobs by using the same Java configuration. There are three components for the Java-based configuration: the @EnableBatchProce

docs.spring.io

 

해당 공식 문서에서 @EnableBatchProcessing를 Spring 6.X 또는 Spring Boot 3.X 에서 사용하면 안된다는 것을 기입해 놓지 않았다.

 

그래서 @EnableBatchProcessing를 계속 사용했다.

@Slf4j
@Configuration
@RequiredArgsConstructor
@EnableBatchProcessing
public class JobConfiguration {
    ...
}

 

그랬더니 애플리케이션을 실행 시키더라도 배치가 동작되지 않았다!!!!

 

@EnableBatchProcessing가 문제인지도 모르고,

계속 다른 것만 찾아보다가

Migrate Application From Spring Boot 2 to Spring Boot 3까지 보게 되었다.

 

 

https://www.baeldung.com/spring-boot-3-migration

 

운이 좋게 해당 글에서 답을 찾을 수 있었다.

 

 

마지막 문장이 가장 중요하다.

 

@EnableBatchProcessing를 쓰게 되면 설정이 back off가 된다는 것이다.

즉, 설정이 초기화돼 Spring Batch가 동작하지 않는다는 의미다!!!

 

오늘도 닉값했다…..