작성
·
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를 설정 파일로 사용하게 됩니다.
감사합니다.