인프런 커뮤니티 질문&답변
@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 이 붙여있는 클래스가 실행되는지 몰랐습니다.