컴포넌트 스캔을 사용하기 위해 설정 정보(클래스)에 @ComponentScan 을 붙여준다.

@Configuration
@ComponentScan(
		excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = Configuration.class)
)
public class AutoAppConfig {
}

excludeFilters 를 이용하여 @Configuration 이 붙은 설정 파일을 제외하고 빈을 등록하도록 설정하였다. 보통 설정 정보를 컴포넌트 스캔 대상에서 제외하지는 않지만, 기존 예제 코드를 유지하기 위해 설정하였다.

컴포넌트 스캔은 이름 그대로 @Component 애노테이션이 붙어있는 클래스들을 빈으로 등록한다. @Configuration@Bean 을 이용하여 빈을 등록할 때는 의존 관계를 직접 엮어주었지만, 컴포넌트 스캔은 빈으로 등록할 클래스를 선언만 해두었을 뿐 의존이 묶여있지는 않다. 이러한 의존관계를 맺기 위해 @Autowired 애노테이션을 사용한다.

@Autowired 애노테이션을 이용하여 해당 애노테이션을 호출한 객체로부터 필요한 빈을 DI 컨테이너에서 호출해와 의존관계로 묶는다.

Untitled

Untitled

Untitled

Untitled

Untitled