-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
UnsatisfiedDependencyException 오류에 대한 질문
24.01.25 14:19 작성 24.01.25 15:52 수정 조회수 476
1
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
UnsatisfiedDependencyException 오류 내용
Error creating bean with name 'memberServiceImpl' defined in file [C:\study\core\out\production\classes\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
NoUniqueBeanDefinitionException 오류 내용
No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository
오류 2가지가 발생하는데 두가지 모두 스프링 빈에 대한 오류인 것 같은데 해결을 못하겠습니다. (해결은 했으나 질문남깁니다.)
======================================
뒷 부분 강의영상을 참고해서 에러발생하는 지점인 MemoryMemberRepository, Policy 부분에
@Primary
애노테이션을 사용해서 오류를 풀긴했는데 왜 그렇게 해야하는지 모르겠습니다.
스프링 부트 자체에Componentscan
이 포함되있어서 AppConfig 파일이 스프링 빈에 등록된다는 답변글을 봤었는데 그럼 메인으로 사용하는 클래스(Rate, Fix)가 변경될 때 마다@Primary
를 적용해줘야하는건가요?그리고 해결방법 중에 gradle 을 통해서 빌드 실행하는 것이 있던데 설명을 봐도 이해가 안갑니다. 초기에 알려주신 설정으로 gradle 은 intelliJ 로 설정되어있는데 빌드 실행하라는것이 terminal 에서 빌드를 하라고 하시는건지 이해가 안됩니다.
답변을 작성해보세요.
0
0
김영한
지식공유자2024.01.26
ljjs0121
질문자2024.01.28
Gradle 설정 정보에서 IntelliJ 에서 Gradle 로 바꿨더니 @Primary를 쓰지 않고도 오류가 해결되었습니다. 감사합니다.
0
ljjs0121
질문자2024.01.28
저는 MemoryMemberRepository
와 RateDiscountPolicy
클래스에 @Primary
애노테이션을 붙여줘서 오류는 막은 상태입니다.
===================================================
window 시라면 setting 에서 gradle -> 설정 정보(Build and Run, Run tests)가 intelliJ 로 되어있다면 gradle 로 바꿔주시면
@Primary 애노테이션 사용안하셔도 정상적으로 되네요! 제 질문의 아래 질문 보시고 하시면 될 것 같아요 😄
답변 3