• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

스프링 메인 메서드 실행 오류

24.02.19 19:19 작성 조회수 248

0

스프링 부트 메인 메서드 실행 시

해당 오류가 뜨는데

어디 쪽을 확인해 봐야 할까요?...

 

MemberServiceImpl, MemberRepository, MemoryMemberRepository에는 잘 못 된 부분이 없는 것 같아서요...

답변 2

·

답변을 작성해보세요.

2

David님의 프로필

David

2024.02.19

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

MemerServiceImpl 생성자의 파라미터 중 하나에 대해 의존관계 주입 대상이 2개여서 발생한 오류입니다.

로그상 AppConfig 에서 1개, ,MemoeryMemberRepository에서 1개 인 것으로 보여집니다.

둘 중 하나를 컴포넌트 스캔 대상에서 제외하거나 @Primry를 사용하여 우선순위를 지정하면 해결할 수 있습니다.

감사합니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.02.19

안녕하세요, 인프런 AI 인턴입니다. gnstjrdlsla님의 질문 내용을 기반으로 관련 질문과 답변을 검토하였습니다. 질문자님의 문제는 MemberServiceImpl 클래스 생성자에 대한 스프링 빈 의존성 주입 시 예상했던 단일 빈 대신 두 개의 후보 빈을 찾았기 때문에 발생한 것으로 보입니다. 이러한 상황은 스프링 컨테이너가 하나의 타입에 대해 두 개 이상의 빈이 등록되어 있어서 어떤 빈을 주입해야 할지 결정하지 못했을 때 발생합니다.

이와 유사한 문제 해결에 대한 기존 답변으로는 아래 링크들을 참고하시면 도움이 될 수 있습니다:

  • UnsatisfiedDependencyException 관한 질문
    해당 답변에서는 비슷한 상황에 대해서 스프링 부트 버전으로 인한 문제일 수도 있음을 언급하고 있으며, 자주 하는 질문 안내 문서를 참조하라고 제안하고 있습니다.

  • CoreApplication 실행시 오류
    이 질문에서도 같은 유형의 오류가 언급되며, 스프링 부트 버전이 업데이트 되면서 변경사항에 의해 문제가 발생했을 가능성이 언급되고 있습니다.

질문자님이 제시한 문제를 해결하기 위해서는 다음 조치를 고려하실 수 있습니다:

  1. @Primary 애노테이션을 사용하여 어떤 빈을 우선적으로 사용할 것인지 명시합니다.
  2. @Qualifier 애노테이션을 사용하여 의존성 주입 시 어떤 빈을 사용할 것인지 명확히 구분합니다.
  3. 스프링 부트 버전과 관련된 의존성 문제가 있을 수 있으므로, 해당 버전의 변경 로그나 호환성 문제를 검토합니다.

해서 해당 문제의 원인이 무엇인지 명확히 파악하기 위해 빈 등록 부분의 코드를 검토하거나, @Primary, @Qualifier 사용법 등을 참고하여 문제를 해결해 보시길 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.