@Qualifier 어노테이션과 더불어, 자격을 암시하는 형식인 자바 지네릭 타입들을 사용할 수 있다. 그 예시로, 다음과 같은 설정이 있다고 가정해보자.
@Configuration
public class MyConfiguration {
@Bean
public StringStore stringStore() {
return new StringStore();
}
@Bean
public IntegerStore integerStore() {
return new IntegerStore();
}
}
위 bean들이 지네릭 인터페이스를 구현한다면(Store<String>과 Store<Integer>), 여러분은 Store 인터페이스에 @Autowire를 붙일 수 있으며, 이때 지네릭은 수식자로써 사용된다. 다음 예시를 보자.
@Autowired
private Store<String> s1; // <String> 수식자, stringStore bean을 주입한다.
@Autowired
private Store<Integer> s2; // <Integer> 수식자, integerStore bean을 주입한다.
지네릭 수식자들은 리스트, 맵, 배열에도 적용된다. 다음 예시는 지네릭 List를 autowire하고 있다.
// <Integer> 지네릭을 가진 모든 Store bean들을 주입한다.
// Store<String> bean들은 이 리스트에 담기지 않는다.
@Autowired
private List<Store<Integer>> s;
'SpringFramework Core - I. IoC 컨테이너 > 9. 어노테이션 기반의 컨테이너 설정' 카테고리의 다른 글
9.7. @Resource로 주입하기 (0) | 2020.04.13 |
---|---|
9.6. CustomAutowireConfigurer 사용하기 (0) | 2020.04.13 |
9.4. Qualifier들을 활용한 어노테이션 기반의 정교한 Autowiring (1) | 2020.04.10 |
9.3. @Primary를 활용한 어노테이션 기반의 정교한 Autowiring (0) | 2020.04.10 |
9.2. @Autowired 사용하기 (0) | 2020.04.09 |