생성자 사용 | 가장 권장되는 방법이고, @Autowired 어노테이션을 생략할 수 있다.
setter와 @Autowired 사용하는 방법
setter와 @Autowired 어노테이션을 사용 , UserService에 final 키워드를 빼줘야한다.
setter 사용 | 누군가 setter를 사용하면 오작동할 수 있다.
필드에 바로 사용
@Autowired로 필드에 직접 주입
필드 직접 주입 | 나중에 테스트를 어렵게 만드는 요인이다.
@Qualifier 어노테이션이란?
- Bean을 사용하는 쪽과 등록하는 쪽 모두 @Qualifier 어노테이션을 사용할 수 있다. - Bean을 사용하는 쪽에서만 @Qualifier 어노테이션을 사용하면 , 연결할 Bean의 이름을 적어주어야 한다. - 양쪽 모두 사용하면, @Qualifier 끼리 연결된다.
사용하는쪽에서만 @Qualifier를 사용하는경우, Bean이름을 적어주어야 한다.
양쪽 모두 사용하는경우, @Qualifier끼리 연결된다.
@Qualifier 끼리 직접 매칭할 경우, @Primary 어노테이션보다 우선권이 높다.