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

wan2good님의 프로필 이미지
wan2good

작성한 질문수

스프링 핵심 원리 - 기본편

다양한 의존관계 주입 방법

필드주입에 대하여

작성

·

177

3

안녕하십니까! 강의를 잘듣고있떤 와중에 궁금한 것이 생겨 질문을 드리게 되었습니다.

필드주입의 경우 필드에 @Autowird 어노테이션만 붙이면 된다고 하셨는데  

OrderServiceImpl 이라는 클래스에서

@Autowird private MemberRepository memberRepository 이렇게 가지고 있을 경우 

Spring에서 MemberRepository 형태로 등록되어 있는 빈을 꺼내서 자동으로 저기에 주입시켜주는 것이 맞나요? 강의의 예제의 경우 MemoryMemberRepository 클래스 정의 상단에 @Component 어노테이션이 있기에 처음에 component scan 방식으로 해당 컴포넌트를 인식하여 MemoryMemberRepository를 빈에 등록을 한 후 OrderServiceImpl에서 @Autowird private MemberRepository memberRepository 해당 부분을 본 후 MemoryMemberRepository도 MemberRepository 인터페이스를 구현한 것이기에 MemberRepository 형태로 빈에서 찾을경우 찾은 결과에 속할 수 있기에 

그렇게해서 찾은 MemoryMemberRepository를 OrderServiceImpl의 memberRepository로 의존관계를 주입해주는 것이 맞나요??

만약 맞다면 MemberRepository를 구현하는 메모리멤버리파짓토리와 디비멤버리파지토리가 모두 bean 에 등록되어있을 경우에는 어떻게 작동하게 되는건가요?

답변 1

2

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

안녕하세요. wan2good님

MemberRepository 인터페이스를 구현한 모든 것이 주입의 대상이 됩니다. 따라서 이 경우 충돌이 발생합니다.

바로 조금 뒤에 이런 문제를 어떻게 해결하는지 자세히 설명드립니다^^

감사합니다.

wan2good님의 프로필 이미지
wan2good

작성한 질문수

질문하기