웹 개발

[Spring Boot] @Primary와 @Qualifier의 차이

_KH_ 2025. 5. 22. 09:04
@Primary와 @Qualifier 차이

@Primary는 같은 타입의 빈을 사용할 시 한 객체에게 우선순위를 부여한다.

 

@Bean 으로 생성하는 객체들 중 같은 클래스(타입)인 빈이 있다면, 스프링은 어느 것을 빈으로 생성하여야 하는지 알 수 없기 때문에 컨테이너를 띄우지 못하고 NoUniqueBeanDefinitionException 이라는 예외를 던진다.

그렇기에 찾고자하는 객체에 @Primary를 붙여준다.

 

@Qualifier는 @Component가 객체의 자료형을 참고하기 때문에 같은 타입을 사용하는 빈이 있을 경우 객체의 이름까지 참고하여 해당하는 빈을 찾는다.