본문 바로가기
LEARN/ERROR

[SPRING BOOT] expected single matching bean but found 2 (@repository)

by 아이엠제니 2024. 1. 17.

 

os: windows 11 home

강의: 인프런 [스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술]

부분: 섹션 6 : 스프링 DB 접근 기술 (스프링 데이터 JPA)


 

 

💡 문제

`MemberServiceIntegrationTest`에서 test 실행 시, test 실패

사실 로그를 꼼꼼하게 안 봤는데, 나중에 보니 로그에 답이 있었다...

에러를 확인한 후, 인프런 해당 강의 커뮤니티에 검색을 해봤다.

해당 글을 참고하여, 해결할 수 있었다.

 

 

💡 해결

어떤 분이 남겨주신 해결 방법이었다.

 

 

`MemoryMemberRepository`에서 @Repository 애너테이션이 문제였다.

이걸 삭제(또는 주석처리 후) 테스트 코드를 실행을 해봤더니!

 

 

잘 작동하였다. (굿)

 

 

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController' defined in file [F:\board_basic_240115\out\production\classes\hello\hellospring\controller\MemberController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'springConfig' defined in file [F:\board_basic_240115\out\production\classes\hello\hellospring\SpringConfig.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.hellospring.repository.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,springDataJpaMemberRepository

이번에 또다시 깨달은 점은..

역시 로그를 잘 봐야...

 

 

expected single matching bean but found 2: memoryMemberRepository,springDataJpaMemberRepository

싱글 매칭을 기대하는데, 찾은 건 2개라고 했다.

`memoryMemberRepository, springDataJpaMemberRepository`

여기서 내가 사용할 것은 `springDataJpaMemberRepository`이다.

그러니 `memoryMemberRepository`는 삭제를 해야 함.

 

그렇게 해야 테스트 코드도 정상 작동을 한다.

 

 

 

300x250