본문 바로가기

Java

[Spring] variable not initialized in the default constructor 에러

 

스프링이나 스프링부트 프로젝트를 진행하면서 Lombok 을 유용하게 사용하고 있습니다.

 

오늘도 어김없이 @RequiredArgsConstructor 를 사용하였습니다.

 

해당 어노테이션은 final 키워드가 붙은 필드를 생성자를 통해 주입시켜줍니다.

 

이때 Bean 으로 등록한 클래스가 하나이면 해당 클래스를 주입받을 수 있는데,

 

저는 WebClient 를 Bean 으로 등록해둔 상태로 @RequiredArgsConstructor 통해서 WebClient 를 주입받으려고 했는데

 

해당 에러가 발생하였습니다.

 

@Configuration
public class WebClientConfig {

    @Bean                             // Bean 으로 WebClient 등록
    public WebClient webClient() {

        return WebClient.builder()
        
               /***
                 생략
                ***/
        
                .build();
    }

}

 

 

@Component
@RequiredArgsConstructor
public class WebClientUtils {

    private final WebClient webClient;

}

variable not initialized in the default constructor 에러 발생

 

 

이 에러는 L:ombok 이 정상적으로 동작하지 않는다는 뜻으로 Lombok 이 제대로 등록되어 있는지 확인하여야합니다.

 

알아본 결과

 

Gradle 버전에 따라 Lombok 라이브러리 등록에 차이가 있었습니다.

 

Gradle 5.x 미

dependencies {
  implementation 'org.projectlombok:lombok'
}

 

 

Gradle 5.x 이상

dependencies {
  compileOnly 'org.projectlombok:lombok'
  annotationProcessor 'org.projectlombok:lombok'
}

 

 


 

참조

 

https://deeplify.dev/back-end/spring/lombok-required-args-constructor-initialize-error

'Java' 카테고리의 다른 글

JPA 구현체 하이버네이트 사용방법  (0) 2024.01.27
JPA 란?  (1) 2024.01.21
[Java] Reactive Streams 란?  (1) 2024.01.10
Spring Webflux 간단하게 알아보기  (0) 2023.12.25
[Java] SHA-256 암호화 & Salt ( 적용예시 )  (1) 2023.05.17