신뇽이 되어보자

[Spring] @RequiredArgsConstructor 본문

Spring

[Spring] @RequiredArgsConstructor

신뇽이되고싶은미뇽 2025. 1. 14. 10:21
728x90

스프링 강의를 듣다보니 코드를 스프링에 대한 이해없이 짰다는 것을 느끼게 되었다.

느끼게 된 것 중 하나는 의존성 주입 방법에 있었는데

 

일단 의존성 주입 방법들 중에서 유연한 테스트 코드를 작성할 수 있는 생성자 주입방식으로 작성을 해야하는데 나는 모두

필드 주입 방식으로 코드를 작성해서 생성자 주입방식으로 바꾸자라고 생각을 했다.

 

그런데 생성자 주입 방식으로 바꾼 결과 뜬금없이 위에서 에러가 터지기 시작했다.

 

허허 여기서 느꼈다. 나는 알고 개발한 것이 아니였다 라는 것을...

 

 

@RequiredArgsConstructor 이라는 어노테이션이 내뿜는 에러메시지는

 

 

Constructor with '4' parameters is already defined 

라는 것이었다.

이미 @RequiredArgsConstructor가 자동으로 생성자 주입에 대한 코드를 생성해준 것이었다.

 

그렇다면 @Autowired라는 어노테이션은 필요없지 않은가?

 

이는  Lombok에서 지원해주는 어노테이션이고,

이를 사용해주지 않는다면 생성자를 직접 만들어서 의존성을 주입해야할 것이다.

 

핵심을 말하자면,

 

@RequiredArgsConstructor어노테이션은 클래스에 선언된 final변수들, 필드들을 매개변수로 하는 생성자를 자동으로 생성해주는 어노테이션이다.

 

 

728x90