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

11 1님의 프로필 이미지
11 1

작성한 질문수

스프링 핵심 원리 - 기본편

탐색 위치와 기본 스캔 대상

@SpringBootApplication가 붙은 CoreApplication를 실행할 때

해결된 질문

작성

·

295

1

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]

@SpringBootApplication 내부에 @ComponentScan이 있기 때문에

@SpringBootApplication가 붙은 CoreApplication을 실행하면 컴포넌트 스캔을 하게 되는 거 맞죠?

 

그런데 만약 @Service, @Controller, @Component @Autowired 등을 전혀 사용하지 않고

오로지 설정 클래스의 @Configuration, @Bean을 통해 빈을 등록한다면

 

CoreApplication을 실행했을 때

컴포넌트 스캔이 동작하긴 하지만, 컴포넌트 스캔을 통해 등록되는 빈은 없다고 보면 되나요? 즉, @Bean을 통해 등록되는 빈들은 있어도, 컴포넌트 스캔은 동작은 하되, 스캔을 통해 등록되는 빈은 이 경우엔 없다고 보면 되나요?

 

답변 1

2

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

@SpringBootApplication 내부에 @ComponentScan이 있기 때문에

@SpringBootApplication가 붙은 CoreApplication을 실행하면 컴포넌트 스캔을 하게 되는 거 맞죠?

=> 네 맞습니다 ^^

그런데 만약 @Service, @Controller, @Component @Autowired 등을 전혀 사용하지 않고

오로지 설정 클래스의 @Configuration, @Bean을 통해 빈을 등록한다면

 

CoreApplication을 실행했을 때

컴포넌트 스캔이 동작하긴 하지만, 컴포넌트 스캔을 통해 등록되는 빈은 없다고 보면 되나요? 즉, @Bean을 통해 등록되는 빈들은 있어도, 컴포넌트 스캔은 동작은 하되, 스캔을 통해 등록되는 빈은 이 경우엔 없다고 보면 되나요?

네, @ComponentScan은 @Controller, @Service, @Repository, @Component 등 스캔의 대상이 되는 클래스를 찾아 빈으로 등록하기 때문에 사용하지 않는다면 컴포넌트 스캔으로 등록되는 빈은 없다고 봐도 됩니다.

 

감사합니다.

11 1님의 프로필 이미지
11 1
질문자

감사합니다.

11 1님의 프로필 이미지
11 1

작성한 질문수

질문하기