라라리라

[Spring] 스프링 Bean을 주입 받는 방법 + @Qualifier 본문

코딩/다이어리

[Spring] 스프링 Bean을 주입 받는 방법 + @Qualifier

헤실 2024. 2. 8. 17:39
생성자를 사용하는 방법

생성자 사용 (@Autowired 생략 가능)

생성자 사용 |    가장 권장되는 방법이고, @Autowired 어노테이션을 생략할 수 있다.

 


setter와 @Autowired 사용하는 방법

setter와 @Autowired 어노테이션을 사용 , UserService에 final 키워드를 빼줘야한다.

setter 사용 |     누군가 setter를 사용하면 오작동할 수 있다.

 


필드에 바로 사용

@Autowired로 필드에 직접 주입

필드 직접 주입 |    나중에 테스트를 어렵게 만드는 요인이다.

 


@Qualifier 어노테이션이란? 
- Bean을 사용하는 쪽과 등록하는 쪽 모두 @Qualifier 어노테이션을 사용할 수 있다.
- Bean을 사용하는 쪽에서만 @Qualifier 어노테이션을 사용하면 , 연결할 Bean의 이름을 적어주어야 한다.
- 양쪽 모두 사용하면, @Qualifier 끼리 연결된다.

사용하는쪽에서만 @Qualifier를 사용하는경우, Bean이름을 적어주어야 한다.

 

양쪽 모두 사용하는경우, @Qualifier끼리 연결된다.

 

@Qualifier 끼리 직접 매칭할 경우, @Primary 어노테이션보다 우선권이 높다.