개발공부/Spring
[Spring] Collection 타입을 생성자 방식으로 주입하기
klyhyeon
2022. 1. 5. 22:15
728x90
클래스 인스턴스가 초기화 될 때, A 인터페이스를 구현하는 Bean들을 List<E implements A>
로 받고 싶다면 아래와 같은 코드를 사용하시면 됩니다.
public class CollectionInject {
//생성자 주입 방식에서 생성자를 의존주입 생성자 하나만 사용한다면 @Autowired가 생략가능 합니다. 그렇지 않고 다른 새성자도 사용할거라면 @Autowired로 명시해줘야 Spring이 어떤 생성자가 의존주입 생성자를 인지합니다.
@Autowired
//Spring은 InterfaceA를 구현한 Bean들을 모두 listOfImplementationA 리스트에 add 해줍니다.
public CollectionInject(List<InterfaceA> listOfImplementationA) {
for (InterfaceA interfaceA : listOfImplementationA) {
System.out.println(interfaceA.getName());
}
}
}
참고자료