궁금증 배경 )
스프링 부트 핵심 가이드 책을 보면서, 책에선 @Autowired를 통해 외부 인터페이스의 생성자를 작성하는 반면 나는 @RequiredArgsConstructor로 외부 인터페이스 의 생성자코드를 생략해서 쓰고 있었다. 이 둘의 차이점은 뭐고 사실 정확히 어떤 이유로 사용하는 이참에 알아보기 위해 조사해보게 되었다.!
Q1. @Autowired와 @RequiredArgsConstructor의 공통점, 사용 목적은?
A :
@Autowired와 @RequiredArgsConstructor은 둘 다 의존성 주입!(Dependency Injection)을 달성하기 위한 목표를 가지고 있다.
Q2. @Autowired와 @RequiredArgsConstructor의 차이점은?
A :
'@Autowired'는 스프링이 타입에 맞는 빈을 자동을 주입하도록 해주는 역할을 한다. 주로 필드, 생성자, 세터 메서드를 사용할 수 있게 해주며 생성자 주입의 경우 @Autowired와 함께 작성을 해줌으로써 의존성을 주입할 수 있다.
'@RequiredArgsConstructor'는 롬복(Lombok)의 라이브러리로, final 필드나 @NotNull이 붙은 필드에 대한 생성자를 자동으로 생성해준다. 이 어노테이션을 통해 우리는 생성자 작성을 생략할 수 있어 코드가 간결해진다. (단, 롬복 라이브러리를 프로젝트에 추가해줘야 한다.)
'Programming > Spring' 카테고리의 다른 글
[Spring] - 인증과 인가 (1) | 2024.03.07 |
---|---|
[Spring] - @RestControllerAdvice를 통한 커스텀 예외 처리 작성 방법 (0) | 2024.02.27 |
[Spring 🤔] - lombok @Builder, @NoArgsConstructor, @AllArgsConstructor의 사용에 대해 (0) | 2024.02.19 |
[Spring] - 데이터베이스 (1) | 2024.02.13 |
[Spring] - 스프링 (gradle) springdoc으로 Swagger3 추가하기 (0) | 2024.02.06 |