더북(TheBook)

물론 타입만 지정해서는 더 이상 컨텍스트에서 빈을 가져올 수 없다. 그렇게 하면 스프링이 선언한 인스턴스 중 어떤 것을 참조할지 짐작할 수 없기 때문에 예외가 발생한다. 다음 예제를 보자. 이런 코드를 실행하면 스프링에서 사용하려는 인스턴스를 정확히 지정해야 한다고 경고하는 예외가 발생할 것이다.

예제 2-14 타입으로 Parrot 인스턴스 참조하기

public class Main { 

    public static void main(String[] args) {
        var context = 
            new AnnotationConfigApplicationContext(ProjectConfig.class);
        Parrot p = context.getBean(Parrot.class); ← 이 줄에서 예외가 발생하는 이유는 스프링은 사용자가 참조하는 Parrot 인스턴스 세 개 중 어떤 것을 참조하는지 추정할 수 없기 때문이다. 
        System.out.println(p.getName());
    } 
} 
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.