
✅ @RequiredArgsConstructor 란?
자바 라이브러리 중 하나인 롬복(Lombok)이 제공하는 기능 중 하나로,
스프링에서 생성자를 자동으로 설정해주는 어노테이션.
- final / @NotNull 인 필드 값을 파라미터로 받아 생성자를 만들어줌.
- @Autowired 없이 생성자를 만들어줌 (=@Autowired를 사용하지 않고 의존성 주입)
✅ @Autowired 보다 @RequiredArgsConstructor 가 지향되는 이유
📌 순환 참조 방지
: @Autowired 를 쓰면 빈 순환 참조 문제가 발생해 서버가 죽어버릴 수 있음.
*순환 참조 : A가 B의 빈을 주입받고 , B가 A의 빈을 주입받으며, 서로 순환되어 참조하는 경우 .
📌 테스트 코드 작성 용이
: 스프링 컨테이너의 도움 없이 테스트 코드를 편리하게 작성 가능.
✅ @RequiredArgsConstructor 사용 예시
@RestController
@RequiredArgsConstructor
pulbic class example {
private final MemberService memberService // fianl이 붙은 memberservice 필드 생성자 자동 생성
}
참고자료 :
Spring Boot에서 @Autowired 대신 @RequiredArgsConstructor 를 써보자!
1. Version 💬 spring boot : 2.6.1 2. 의존성 주입이란? 💬 DI 컨테이너에서 관리할 객체를 지정해주고, 코드내에서 객체를 받아 사용하는 방식이다. 예전에는 new className() 또는 getInstance() 등의 메서드
velog.io
https://insanelysimple.tistory.com/346
생성자 annotation 정리 (NoArgsConstructor, AllArgsConstructor, RequiredArgsConstructor)
생성자 annotation 정리 @NoArgsConstructor 파라미터가 없는 기본생성자를 만들어줍니다. // before @NoArgsConstructor public class NoArgsConstructorTestClass { } // after public class NoArgsConstructorTestClass { public NoArgsConstructo
insanelysimple.tistory.com
https://dreamcoding.tistory.com/83
@RequiredArgsConstructor란?
Lombok으로 스프링에서 DI(의존성 주입)의 방법 중에 생성자 주입을 임의의 코드없이 자동으로 설정해주는 어노테이션이다. @RequiredArgsConstructor는 초기화 되지않은 final 필드나, @NonNull 이 붙은 필드
dreamcoding.tistory.com