인프런 커뮤니티 질문&답변

jay kang님의 프로필 이미지
jay kang

작성한 질문수

스프링 핵심 원리 - 기본편

탐색 위치와 기본 스캔 대상

컴포넌트스캔사용에 대해서

작성

·

294

0

탐색 위치와 기본 스캔 대상에 대해서 강의를 듣다고 궁금한게 생겨서 글을 남겼습니다

SpringBootApplication이 @ComponentScan을 가지고 있고 저희가 사용할려는 Config도 같은 위치에 있으면 굳이 @ComponentScan을 달아주지않아도 컴포넌트스캔은 동작하지않는거랑 만약에 같은 레벨의 위치에서 두개가 있다면 충돌이 발생할 것같은데 테스트 코드에서는 문제가없었습니다 혹시 그이유는

new AnnotationConfigApplicationContext(AutoAppConfig.class);

위의 코드처럼 AutoAppConfig.class라고 지정해서 일까요?? 그러면 이경우에는 CoreApplication은 사용되지않고 AutoAppConfig만 사용해서 동작하는 걸까요?

답변 1

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. jay kang님

질문이 정확하게 잘 이해가 되지 않지만 우선 답변을 드려볼께요 🙂

스프링 부트를 실행하게 되면 스프링 부트는 기본적으로 @ComponentScan을 가지고 있습니다. 이 @ComponentScan과 개발자가 추가한 @ComponentScan이 합쳐져서 마치 하나인 것 처럼 빈들을 인식하게 됩니다.

추가로 질문 주신 new AnnotationConfigApplicationContext(AutoAppConfig.class);는 스프링 부트와는 무관합니다. new AnnotationConfigApplicationContext 코드 자체가 바로 스프링 컨테이너를 만드는 코드입니다. 스플이 부트와 무관하게 스프링 컨테이너를 새로 만들고, 이때 AutoAppConfig.class를 설정 파일로 사용하게 됩니다.

감사합니다.

jay kang님의 프로필 이미지
jay kang

작성한 질문수

질문하기