@Autowired 와 static final 로 의존성을 주입 하는건 여러차례 접해 보았다. 오늘 회사 코드를 보는데 @Qualifier라는 어노테이션을 처음 보아서 적어 놓는다.
Bean 등록시 Bean 의 이름 만으로 구분짓기에 정보가 충분하지 않을 경우, @Qualifier 를 사용해 추가적인 정보를 줄 수 있다. 그리고 의존성을 주입할 때에도 마찬가지로 해당 어노테이션으로 찾아올 수 있는것이다.
<추가 공부 사항>
@Autowired 시에 Bean 이름을 찾게 되면, interface 기준으로 type 별로 찾아오게 된다. 그래서 같은 interface를 확장하여 구현하고 있다면, 같은 type 으로 빈 이름이 똑같이 되기 때문이다. 이럴때 별칭으로 찾고자 쓰는 기능이바로 @Qualifier 인 것 이다.
@Primary를 이용하게 되면, 한 type을 갖는 많은 빈중에 가장 최우선으로 빈을 찾게 할 수 있다.
애초에 Bean을 찾을 때, Type으로 매칭하는게 아니라 필드 이름으로 매칭 하고 싶다면 @Resource 어노테이션을 사용하면된다.
참고
공부하고 찾아보고, 적용해 본 내용을 중심으로 정리합니다. 개인공부 및 기록용이 주목적이며 최대한 정확한 정보를 습득하려고 노력하지만 틀린내용 이 포함될 가능성이 농후합니다. 본문에 대한 지적, 조언 언제든 감사히 받겠습니다.