스프링 프레임워크에서 @Qualifier는 의존성 주입 시 특정 빈을 선택하는 데 사용되는 애노테이션입니다. 같은 타입의 여러 빈이 존재할 때 @Qualifier를 사용하여 원하는 빈을 명시적으로 지정할 수 있습니다. @Qualifier에 대해 자세히 알아보고, 실제 예시를 통해 설명하겠습니다.
@Qualifier 애노테이션
스프링은 기본적으로 타입을 기반으로 의존성 주입을 수행합니다. 하지만 같은 타입의 여러 빈이 존재할 경우 어떤 빈을 주입해야 할지 스프링이 판단하기 어렵습니다. 이런 상황에서 @Qualifier 애노테이션을 사용하여 명시적으로 어떤 빈을 주입할지 지정할 수 있습니다.
@Qualifier 사용법
@Qualifier를 사용하려면 먼저 해당 빈에 이름을 지정해야 합니다. 빈의 이름은 @Qualifier와 함께 사용되어 특정 빈을 식별하는 데 사용됩니다. 예를 들어, 다음과 같이 빈에 이름을 지정할 수 있습니다.
@Component("myBean")
public class MyBean {
// ...
}
그리고 주입할 때 @Qualifier와 함께 빈의 이름을 지정하여 명시적으로 주입할 빈을 선택합니다. 예를 들어, 다음과 같이 @Qualifier를 사용하여 myBean이라는 이름의 빈을 주입할 수 있습니다.
@Autowired
@Qualifier("myBean")
private MyBean myBean;
이렇게 함으로써 @Qualifier를 사용하여 원하는 빈을 선택적으로 주입할 수 있습니다.
@Qualifier 예시
아래는 @Qualifier를 사용하는 예시입니다.
@Component("dog")
public class Dog implements Animal {
// ...
}
@Component("cat")
public class Cat implements Animal {
// ...
}
@Component
public class Zoo {
@Autowired
@Qualifier("dog")
private Animal animal;
// ...
}
위의 예시에서 Dog와 Cat은 Animal 인터페이스를 구현하는 두 개의 빈입니다. Zoo 클래스에서 @Autowired와 @Qualifier를 사용하여 dog라는 이름의 빈을 주입하고 있습니다. 이렇게 하면 Zoo 클래스는 Dog 빈을 주입받을 수 있습니다.
결론
@Qualifier는 스프링에서 같은 타입의 여러 빈 중에서 특정한 빈을 선택적으로 주입하는 데 사용됩니다. @Qualifier를 통해 의존성 주입 시 원하는 빈을 명시적으로 지정할 수 있으며, 이를 통해 애플리케이션의 유연성과 확장성을 향상시킬 수 있습니다.
'IT > spring' 카테고리의 다른 글
스프링 DAO(Data Access Object) 클래스 (0) | 2023.06.16 |
---|---|
스프링 @Resource (0) | 2023.06.15 |
스프링 의존성 주입(Dependency Injection) 설정 (0) | 2023.06.15 |
스프링 컴포넌트 스캔(component-scan) 설정 (0) | 2023.06.15 |
스프링 properties 타입 매핑 (0) | 2023.06.14 |
댓글