하지만 잠깐! 이 코드는 아직 동작하지 않는다. 기본적으로 스프링은 스테레오타입 애너테이션으로 지정된 클래스를 검색하지 않기 때문에 코드를 그대로 두면 스프링은 스프링 컨텍스트에 Parrot 타입의 빈을 추가하지 않는다. 스프링에 스테레오타입 애너테이션으로 지정된 클래스를 검색하도록 지시하려면 구성 클래스에 @ComponentScan 애너테이션을 추가해야 한다. 또 @ComponentScan 애너테이션으로 이런 클래스를 찾을 위치를 스프링에 알려 줄 수 있다. 단순히 스테레오타입 애너테이션으로 지정된 클래스가 있는 패키지들을 열거하여 매개변수(basePackages)에 제공하기만 하면 된다. 다음 예제는 프로젝트의 구성 클래스에 대해 @ComponentScan 애너테이션을 사용하는 방법을 보여 준다. 필자는 패키지 이름을 ‘main’으로 지정했다.
예제 2-17 @ComponentScan 애너테이션으로 스프링이 검색할 위치 지정하기
@Configuration
@ComponentScan(basePackages="main") ← 애너테이션의 basePackages 속성으로 스프링에 스테레오타입 애너테이션이 지정된 클래스를 찾을 위치를 알려 준다.
public class ProjectConfig {
}