본문 바로가기

SpringFramework Core - I. IoC 컨테이너/10. 클래스패스 스캐닝과 관리받는 컴포넌트들

10. 클래스패스 스캐닝과 관리받는 컴포넌트들

원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-classpath-scanning

 

 

이 장에서 대부분의 예시들은 설정 메타데이터를 설정하는 것에 XML을 사용하였다. 이전 장에서는(어노테이션 기반의 컨테이너 설정) source-level 어노테이션들을 통해 어떻게 많은 설정 메타데이터들을 제공할 수 있는지 설명했다. 하지만 그 예시들에서도 "기본"이되는 bean 정의들은 XML 파일에 명확히 설정되어있었다. 어노테이션들은 단지 의존성 주입을 해냈던 것이다. 이 장에서는 클래스패스를 스캐닝함으로써 후보가 되는 컴포넌트들을 찾아내는 방법들에 대해 설명한다. 후보 컴포넌트들은 필터 조건을 만족시키며 일치하는 bean 정의를 가지고 있는 클래스들이다. 이는 XML이 bean을 등록해야하는 필요성을 없애준다. 대신 어노테이션(예를들어 @Component), AspectJ 타입의 표현식, 또는 여러분의 커스텀한 필터 조건들을 사용하여 컨테이너에 등록된 bean 정의의 클래스들을 선택할 수 있다.

 

※ 스프링 3.0부터는, JavaConfig 프로젝트로부터 제공된 많은 기능들이 스프링 프레임워크 core의 일부가 되었다. 이를 통해 bean을 정의하는 데에 전통적인 XML 파일들 대신에 자바를 사용할 수 있게 되었다. @Configuration, @Bean, @Import, @DependsOn과 같은 어노테이션들의 예시들을 통해 새로운 기능들을 어떻게 사용하는지 살펴보자.