• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

빈으로 등록하지 않았는데 @Autowired를 통해 의존성 주입할 때 충돌이 납니다.

23.12.05 14:05 작성 23.12.05 15:09 수정 조회수 545

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
안녕하세요 @Autowired를 사용해 의존성 주입을 하다 충돌이 나서 질문드립니다.

MemberRepository인터페이스 -> MemoryMemberRepository 구현체

후자에만 @Component를 붙인 상황입니다.

그런데

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberServiceImpl' defined in file [/Users/minsung/Desktop/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

이런식으로 memberRepository 또한 빈으로 등록되어 있었습니다.

@Autowired가 클래스 타입으로 조회한다는 것은 알고 있지만 빈으로 등록되어있는 애들 중에서 조회하는 것 아닌가요...?

  1. 왜 memberRepository를 빈으로 등록하지 않았는데 빈으로 등록되어있는지

  2. @Autowired는 왜 빈으로 등록되지도 않은 memberRepository를 찾을 수 있었는지

  3. @Autowired 보다는 @RequiredArgsConstructor 사용을 권장하던데 이제 @Autowired는 잘 쓰이지 않는 것인지

궁금합니다!

답변 1

답변을 작성해보세요.

0

orhamster님의 프로필

orhamster

2023.12.05

네, 저에게 강의 내용과 관련된 질문을 하셔도 됩니다. 강의 내용에 대해 궁금한 점이 있으시면 질문해 주세요. 제가 최대한 도움을 드리겠습니다.

tunnel rush