package hello.core;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
@Configuration
//ComponentSacn은 bean을 전부 검색해서 담는 과정을 수행함, 정확히는 @Componet가 붙은 녀석들을 전부 담아줌
@ComponentScan(
//AppConfig에 등록한 Configuration을 제외해주는 과정
excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class)
)
여기서 의문이 들었다. Configuration이 붙은 클래스는 제외가 되어야 하는데 현재 파일에서 ComponentScan 위에 Configuration이라고 설정해주었다. 그럼 현재 폴더도 제외 대상이 되어야하는 것이 아닌가?
찾아본 결과, ComponentScan에서 Configuration 애노테이션 제외필터를 걸면 자기자신을 제외하고 현재 클래스가 속한 패키지와 그 하위 패키지를 스캔한다고 한다.
궁금증에 대한 글 :
@ComponentScan - 인프런 | 질문 & 답변
위와 같은 이유로 자기자신에게 @Configuration을 붙이든 안붙이든 자기자신은 스캔하지 않는다 라는 결론이 나왔다.