컴포넌트 스캔의 주요 기능

               ●스캔 위치 설정

               ●필터: 어떤 어노테이션을 스캔할지 또는 하지 않을지 설정

 

스프링 부트 기준으로 @SpringBootApplication 어노테이션 안에 @ComponentScan을 가지고 있기 때문에

@SpringBootApplication를 등록한 메인 클래스가 포함한 패키지부터 이하의 모든 패키지를 스캔해줌

 

@ComponentScan 이 모든 객체를 빈으로 등록해주는 것은 아님

excludeFilter를 통해 걸러낼 수 있음

@ComponentScan에는 어디부터 어떻게 스캔할 것인지와 어느 것을 걸러낼 것인지 필터 해주는 속성이 존재하고

아래 어노테이션이 모두  빈으로 등록됨

 

@ComponentScan 대상들

    @Repository

    @Service

    @Controller

    @Configuration

 

동작원리

@ComponentScan은 실제 스캐닝은 ConfigrationClassPostProcess라는 BeanFactoryPostProcessor에 의해 처리됨

 

 

+ Recent posts