본문 바로가기

SpringBoot23

Spring Batch Partitioning에서 Job이 끝나지 않는다면 의심해보자 Spring Batch Partitioning을 통한 병렬 처리 작업 시 특정 Worker Step은 정상 종료되었으나 그 외 다른 Worker Step은 종료되지 않아 job이 끝나지 않는 케이스가 발생하였다.또한 어떠한 Exception도 로그로 찍고 있지 않고 있어 원인을 찾는데 애를 먹었다. 전체 코드(필요코드 외 생략)@Slf4j@Configuration@RequiredArgsConstructorpublic class FreeSubNotiBatchPartitionConfig { private final EntityManagerFactory entityManagerFactory; private final int chunkSize=5; private final TaskExecutor.. 2025. 1. 5.
Spring Batch MultiThread 병렬 처리 시 LazyInitializationException 발생 원인과 해결 과정(1) 배경 상황 Spring Batch MultiThread 환경에서 ItemReader에서는 @OneToMany(fetch = FetchType.LAZY)로 설정된 단방향 연관관계의 "One" 엔티티만 조회했습니다.ItemProcessor 단계에서 해당 연관 엔티티의 데이터에 접근하려 하자 LazyInitializationException 발생하였습니다.# 기본적인 chunk 기반 Spring Batch 프로세스를 이해하고 있어야 함## ItemReader의 구현체로 JpaPagingItemReader 사용## Single Thread로 작업 처리 시 해당 예외는 발생하지 않았으나, MultiThread 로 처리 시에만 발생 우선 LazyInitializationException은 어떤 오류인가?영속성 컨.. 2024. 12. 19.
SpringSecurity 순환 참조(circular references) 발생 스프링 순환 참조란?서로 다른 빈들이 서로 참조를 맞물리게 주입되면서 발생하는 현상스프링은 순환 참조 관계에 있는 빈들 중 어떤 빈을 먼저 생성해야 할지 결정할 수 없게 되는 상황이다.  문제 발생시큐리티를 적용하고 비즈니스 로직이 실행이 아닌 애플리케이션 구동 시 아래와 같은 에러가 발생하였다.The dependencies of some of the beans in the application context form a cycle:┌─────┐| securityConfig defined in file [C:\Users\sungh\IdeaProjects\football\build\classes\java\main\com\sunghyun\football\config\SecurityConfig.class]↑.. 2024. 9. 11.
@Valid MethodArgumentNotValidException 처리 개요개인 프로젝트에서 Exception 처리는 @RestControllerAdvice와 @ExceptionHandler를 통하여 Exception을 한 곳에서 통합하여 처리합니다.이 때, 요청받은 입력값에 대한 검증은 @Valid 를 사용하여 합니다.@Valid에 의해 발생되는 Exception은 MethodArgumentNotValidException이다.해당 예외 처리를 진행하면서 겪은 상황과 해결 과정을 설명하려 한다. @ExceptionHandler를 통한 예외 처리다른 Exception들과 마찬가지로 @ExceptionHandler로 잡아 처리하도록 하였다. @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(MethodArgumen.. 2024. 8. 23.