흰 스타렉스에서 내가 내리지

스프링에서 Bean을 주입받는 방식 본문

Spring

스프링에서 Bean을 주입받는 방식

주씨. 2023. 1. 17. 16:02
728x90
@RequiredArgsConstructor
@RestController
public class PostsApiController {
    private final PostsService postsService;
}

 

스프링에서 Bean을 주입받는 방식은 다음 3가지가 있다. 

1. @Autowired

2. setter

3. 생성자

 

이 중 가장 권장하는 방식이 생성자로 주입받는 방식이다. 

@Autowired는 권장하지 않는다. 

 

즉, 생성자로 Bean 객체를 받도록 하면 @Autowired와 동일한 효과를 볼 수 있다.

생성자는 lombok 라이브러리의 @RequiredArgsConstructor에서 해결해 준다. 

final이 선언된 모든 필드를 인자값으로 하는 생성자를 이 어노테이션이 생성해준다. 

 

생성자를 직접 안쓰고 lombok 어노테이션을 사용한 이유는?

→ 해당 클래스의 의존성 관계가 변경될 때마다 생성자 코드를 계속해서 수정하는 번거로움을 해결하기 위함이다. 

→ 롬복 어노테이션이 있으면 해당 컨트롤러에 새로운 서비스를 추가하거나, 기존 컴포넌트를 제거하는 등의 상황이 발생해도 생성자 코드는 전혀 손대지 않아도 된다. 

'Spring' 카테고리의 다른 글

Custom Annotation 어노테이션 만들기 (@LoginUser)  (0) 2023.01.18
@Transactional(readOnly = true)  (0) 2023.01.18
Filter, Interceptor, AOP의 차이  (0) 2023.01.16
Spring Interceptor , 스프링 인터셉터  (0) 2023.01.16
Spring WebFlux  (0) 2023.01.01