스프링이나 스프링부트 프로젝트를 진행하면서 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 |