인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

optional님의 프로필 이미지
optional

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

안녕하세요! (interface)SpringDataJpaMemberRepository 생성 후 질문드립니다.

작성

·

216

0

강의와 관련있는 질문을 남겨주세요.
• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)
• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)
서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등)

질문 전달에도 요령이 필요합니다.
• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.
• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.
• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요. 
• 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요!

구체적인 질문일수록 명확한 답을 받을 수 있어요.
• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.
• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.
• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다.

기본적인 예의를 지켜주세요.
• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. 
• 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. 
반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다. 

현재 MemberRepository를 바라보는 파일이 두개 있습니다.

1.MembroyMemberRepository(implements MemberRepository)

2.SpringDataJpaMemberRepository(extends MemberRepository)

현상태에서 SpringConfig에 생성자를 만들어 MemberRepository 의존성 주입을 할때, 다음과 같은 에러가 발생합니다.

혼자만의 해결책으로는 MemoryMemberRepository를 전부 주석처리하니깐, 해당 오류가 해결됐지만,

implements나 extends로 바라보는 것과 autowired의 상관관계(?)에 대해 질문 드리겠습니다!

-

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. optional님

간단하게 설명드리면, 지금 둘다 스프링 빈으로 등록이 되어버렸네요.

@Autowired 시점에 스프링 입장에서는 둘 중에 하나를 선택해서 주입을 해주어야 합니다.

그런데 둘다 등록이 되어 있으니 예외가 발생하는 것이지요.

MemberMemberRepository를 스프링 빈에서 제거하려면 MemberMemberRepository는 그냥 두시고,

SpringConfig에서 MemberMemberRepository를 @Bean으로 등록하는 코드만 제거해주시면 됩니다.

아 그리고 MemberMemberRepository에 @Repository가 붙어있으면 제거해주세요. 스프링이 자동으로 스프링 빈으로 등록해버립니다.

추가로 이런 경우에 스프링이 내부에서 어떤식으로 동작하고, @Autowired에서 중복 된 스프링 빈이 있을 때의 다양한 해결방법은 다음 강의인 스프링 핵심 원리 - 기본편에서 자세히 설명드립니다.

감사합니다.

optional님의 프로필 이미지
optional

작성한 질문수

질문하기