해당 게시물은 백기선님의 스프링 프레임워크 핵심 기술 강좌를 정리한 내용 입니다.
1. @ComponentScan
- @ComponentScan는 @Component 애노테이션이 있는 클래스들을 스캔하여 빈으로 등록한다.
- BasePackages는 입력된 패키지의 경로를 기준으로 스캔을 시작한다.
(패키지의 경로를 문자열로 입력 받기 때문에 type-safe 하지 않음)
BasePackageClasses는 입력된 클래스가 위치한 패키지를 기준으로 스캔을 시작한다.
- 스프링 부트에서는 @SpringBootApplication 애노테이션이 붙어 있는 클래스가 컴포넌트 스캔의 시작 지점이다.
2. @ComponentScan의 주요 기능
- 스캔 위치를 설정하고, 어떤 애노테이션을 스캔 할지 또는 하지 않을지 결정하는 필터(Filter) 기능을 가지고 있다.
3. @Component를 확장한 애노테이션
① @Repository
② @Service
③ @Controller
④ @Configuration
4. 컴포넌트 스캔의 동작 원리
- @ComponentScan은 BeanFactoryPostProcessor를 구현한 ConfigurationClassPostProcessor에 의해 처리된다.
- BeanFactoryPostProcessor는 다른 모든 Bean들을 찾아 BeanFactoryPostProcessor의 구현체를 적용하여
빈(Bean)으로 등록한다.
※ 다른 Bean이란 우리가 직접 등록하는 Bean들을 말한다.
@Bean, @Respository 등
'Spring > Spring Core' 카테고리의 다른 글
[Section 1] IoC 컨테이너 6부: Environment 1부. 프로파일 (0) | 2020.09.03 |
---|---|
[Section 1] IoC 컨테이너 5부: 빈의 스코프(Scope) (0) | 2020.09.03 |
[Section 1] IoC 컨테이너 3부: @Autowired (0) | 2020.09.03 |
[Section 1] IoC 컨테이너 2부: ApplicationContext와 다양한 빈 설정 방법 (0) | 2020.09.02 |
[Section 1] IoC 컨테이너 1부: 스프링 IoC 컨테이너와 빈 (0) | 2020.09.01 |
댓글