Spring
Project
배달앱

진행하면서 겪었던 오류

@RequiredArgsConstructor 어노테이션 사용시 발생할 수 있는 문제

아래 코드에서 StoreRegisterConverter, StoreService 두개의 필드를 Spring으로부터 주입받고자 하는데 자꾸 NullPointException이 터졌다. Copilot이 이르길 final을 붙이지 않으면 주입이 되지 않는 모양이다.

@Business
@RequiredArgsConstructor
public class StoreBusiness {
  private StoreRegisterConverter registerConverter;
  private StoreService storeService;
  ...
}

다음과 같이 위 코드에 final을 붙이면 정상적으로 잘 주입된다.

@Business
@RequiredArgsConstructor
public class StoreBusiness {
  private final StoreRegisterConverter registerConverter;
  private final StoreService storeService;
  ...
}

RequestBody import Error

Request에 값이 자꾸 들어오지 않아서 1시간 동안 삽질 하다가 결국 그날은 포기하고 다음날이 되서 이유를 찾았다. 처음에는 RequestBody의 세부 구현까지 들어갈려고 각오를 하고 켰는데 혹시나 싶어서 다른 코드와 비교를 해보니 애초에 import가 잘못되어 있었다.
swagger의 request body가 아니라

그릇된 예
io.swagger.v3.oas.annotations.parameters.RequestBody

spring web의 request body를 사용하면 된다.

옳바른 예
import org.springframework.web.bind.annotation.RequestBody;