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

비트리올님의 프로필 이미지
비트리올

작성한 질문수

스프링 DB 2편 - 데이터 접근 활용 기술

프로젝트 구조 설명2 - 설정

MemoryConfig.class를 스프링이 어떻게 인식한건가요?

작성

·

294

0

@Import(MemoryConfig.class)
@SpringBootApplication(scanBasePackages = "hello.itemservice.web")
public class ItemServiceApplication {

   public static void main(String[] args) {
      SpringApplication.run(ItemServiceApplication.class, args);
   }

   @Bean
   @Profile("local")
   public TestDataInit testDataInit(ItemRepository itemRepository) {
      return new TestDataInit(itemRepository);
   }

}

위 소스는 강의에서 사용한 코드를 그대로 복사붙여넣기 한 것입니다.
코드를 보시면 ItemServiceApplication은 컴포넌트 스캔 범위에 포함되지 않습니다.
제 생각으로는, ItemServiceApplication이 컴포넌트스캔 범위에 포함되어야만
MemoryConfig가 인식되어 빈이 등록될것 같습니다.
하지만 컴포넌트스캔 대상이 아니여도 빈이 등록이 됬습니다.

ItemServiceApplication과 같은 Application 파일에서 @Import를 할경우
자동으로 Config로 인식하는 그런 기능이 있는건가요?
아니면, 컴포넌트 스캔 범위를 지정해줘도 예외적으로 Application파일은 컴포넌트스캔 대상이 되는건가요?

지금 스프링이 어떤 원리로 MemoryConfig.class를 인식하여 빈을 등록한건지 이해가 잘 되지않습니다.

답변 1

1

안녕하세요. 비트리올님, 공식 서포터즈 OMG입니다.

@Import의 기능으로 이해하시면 될 것 같습니다

아래 링크를 참고해주세요 :)

image

https://juntcom.tistory.com/184


스프링공식문서도 참고해주세요.

imagehttps://docs.spring.io/spring-framework/docs/current/reference/html/core.html#spring-core

감사합니다.

비트리올님의 프로필 이미지
비트리올

작성한 질문수

질문하기