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

//님의 프로필 이미지
//

작성한 질문수

스프링 핵심 원리 - 기본편

중복 등록과 충돌

Spring boot 사용시 @Configuration 대한 질문입니다.

작성

·

386

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
제가 이해한 부분은 @ComponentScan은 해당 어노테이션이 붙은 클래스 패키지부터 시작해서 하위 패키지를 모두 뒤지고 @Component 가 붙은 부분을 스프링빈으로 컨테이너에 등록한다는것으로 이해했습니다.

그리고 Spring boot의 경우 @SpringBootApplication이 CoreApplication에 붙어있고 해당 어노 테이션은 @ComponetScan 내포하고 있고 그 위치가 프로젝트 최상위에 위치하다보니 결국 @ComponetScan 을 쓸필요가 없어지는것으로 이해했습니다.

 

이해가 안되는것은 @Configuration 에 대한 내용인데요. @SpringBootApplication 로 들어가보니 @Configuration는 포함하고 있지 않던데 어떻게 Spring boot에서 @Configuration이 사용되는건가요?

 

답변 2

0

//님의 프로필 이미지
//
질문자

음.. 안에 들어가보니 @Component 가 있는건 알겠는데 잘 이해가 안갑니다 ..ㅜ 해당 어노테이션을 포함하고 있으니 scan할때 발동이 되는건가요..? 그렇다 해도 선언이 안됐는데 어떻게 스캔이되죠..? ㅜㅜ

@SpringBootApplication 어노테이션이 포함하는 @ComponentScan은 @Configuration이 붙은 클래스도 탐색 대상에 포함되어 있습니다. 즉, @Configuration 클래스는 스프링 빈으로 등록됩니다.

따라서, Spring Boot 프로젝트에서 @Configuration이 붙은 설정 클래스를 만들면, @SpringBootApplication 어노테이션이 붙은 클래스가 실행될 때 @ComponentScan에 의해 해당 설정 클래스가 탐색되고 그 안에 정의된 @Bean들이 스프링 컨테이너에 등록됩니다.

따라서 @SpringBootApplication 어노테이션이 @Configuration을 직접 포함하지 않더라도, Spring Boot는 여전히 @Configuration 어노테이션을 이용한 설정 방식을 활용하게 됩니다.

 

첫문단을 이해하셨다고 하였으니 위의 내용을 이해하시는데에 무리가 없을것 같습니다.

0

안녕하세요. //님, 공식 서포터즈 OMG입니다.

질문 앞 부분까지 강의에서 영한님이 설명하시는 내용을 잘 이해하신 것 같습니다 :)

마지막 의문이 가는 부분을 풀어내려면 @Configuration 어노테이션도 @SpringBootApplication을 확인하였던것처럼 코드 구현부를 확인해보시면 이해가 되실거라 생각하며, 궁금증이 해결되지 않을 경우 댓글 남겨주세요

감사합니다.

//님의 프로필 이미지
//

작성한 질문수

질문하기