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

xxlsheep님의 프로필 이미지

작성한 질문수

스프링 핵심 원리 - 기본편

롬복과 최신 트랜드

CoreApplicationTests 오류 질문드립니다

작성

·

130

·

수정됨

2

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

 

에러 내용


현재 CoreApplicationTests를 돌리면 오류가 나서 질문 올려봅니다.

잘은 모르지만 고치려고 제 코드와 오류를 살펴보니 MemberServiceImpl과, OrderServiceImpl 둘의 클래스 각각 @Autowired 어노테이션이 적용된 생성자에 주입해지는 MemberRepository 타입 객체가? 빈에 등록된게 두개라 둘 중 뭘 넣지 못한다는 형식의 오류 같습니다. (확실하지 않아서 모르겠어서 질문 드립니다).

 

시도한 부분


자주묻는 질문란에 스프링 부트 3.X 매개변수 이름 인식 문제에 대해서 인식하고 @Autowired 관련 문제 해결방안 3인 인텔리제이의 설정 부분에서 Build and run using를 Gradle로 설정하고 돌려도 똑같더라구요.

그래서 아직까지 문제가 정확히 무엇인지 파악하지 못하겠습니다.

하단에 에러 메세지와 코드 덧붙였습니다. 한번 봐주신다면 정말 감사하겠습니다. ㅠ

 

코드압축본


https://drive.google.com/file/d/1WdsaN07LSBwaHzlae8WMEj-0wwYnOM5c/view?usp=sharing

 

에러메세지 (게시글 용량때문에 중요해 보이는 에러만 가지고 와봤습니다)

테스트 실행했을 때 Test Results - CoreApplicationTest - contextLoads의 에러 내용입니다


Failed to load ApplicationContext for [MergedContextConfiguration@36681447 testClass = hello.core.CoreApplicationTests, locations = [], classes = [hello.core.CoreApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@192d74fb, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@66ce957f, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@efde75f, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@7894f09b, org.springframework.boot.test.context.SpringBootTestAnnotation@fd6d726d], contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]

java.lang.IllegalStateException: Failed to load ApplicationContext for [MergedContextConfiguration@36681447 testClass = hello.core.CoreApplicationTests, locations = [], classes = [hello.core.CoreApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@192d74fb, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@66ce957f, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@efde75f, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@7894f09b, org.springframework.boot.test.context.SpringBootTestAnnotation@fd6d726d], contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]

 

Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,MemberRepository

 

Error creating bean with name 'memberServiceImpl' defined in file [/Users/sun/workspace/intelliJ/spring/study/core/build/classes/java/main/hello/core/member/MemberServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,MemberRepository

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberServiceImpl' defined in file [/Users/sun/workspace/intelliJ/spring/study/core/build/classes/java/main/hello/core/member/MemberServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,MemberRepository

 

Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,MemberRepository

 

답변 1

1

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

AppConfig클래스에서 아래 코드의 영역표시된 코드의 이름을 변경해주세요.

MemberRepository() -> memberRepository()

단축키(shift + f6)로 전체 적용을 하여 변경하셔야 문제없이 동작할거에요.

 

image.png

빌드 실행은 Gradle(Default)로 확인해주세요.

감사합니다.

xxlsheep님의 프로필 이미지
xxlsheep
질문자

아 너무 감사합니다 너무 기본적인걸 놓쳤네요 ㅠㅠ

xxlsheep님의 프로필 이미지

작성한 질문수

질문하기