강의

멘토링

커뮤니티

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

starryeye님의 프로필 이미지
starryeye

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

@Repository 어노테이션 질문

해결된 질문

작성

·

301

1

@Repository, @Component 등의 어노테이션 적용되어있는 class들이 스프링 컨테이너에 등록되려면

@ComponentScan으로 configuration 생성이 되어있어야 한다고 알고있습니다.

하지만, JPA와 DB 설정, 동작확인에서 TEST할때 아래와 같이 @Autowired MemberRepository memberRepository 를

할때 config 파일이 없음에도 잘 동작합니다...

어떻게 되는건지 관련하여 질문드립니다.

답변 1

3

안녕하세요. 이주형님, 공식 서포터즈 David입니다.

@ComponentScan의 경우 별도로 configuration 파일을 생성하는 것이 아니라 @Component 애노테이션을 감지하여 빈으로 등록하게 됩니다.

Test의 경우 @SpringBootTest에 의해 내부적으로 @SpringBootApplication이 붙어있는 클래스가 실행됩니다. 당연히 @SpringBootApplication은 @ComponentScan을 포함하므로 Component Scan이 동작하여 빈이 등록되게 됩니다.

따라서 @Autowired를 통해 MemberRepository에 빈이 주입되는 것입니다.

감사합니다.

좋은 답변 감사합니다. 저도 비슷한 문제로 고민하고 있었는데 한방에 해결 됬습니다. @SpringBootTest에 의해 내부적으로 @SpringBootApplication 이 붙여있는 클래스가 실행되는지 몰랐습니다.

starryeye님의 프로필 이미지
starryeye

작성한 질문수

질문하기