스프링 빈
281
작성한 질문수 12
[질문 내용]
MemoryMemberRepository가 MemberRepository인터페이스를 구현하기 때문에 스피링 빈(객체)는 MemoryMemberRepository클래스의 객체여야한다고 생각하는데

강의안은 이렇게 되어있는데 부모 인터페이스가 자식을 품을수 있기 때문에 그림이 이렇게 된건가요??
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
님의 질문은 스프링 프레임워크에서의 빈(bean) 등록 및 컴포넌트간의 의존성 주입 메커니즘에 관련된 것으로 보입니다. 구체적으로는, 인터페이스(MemberRepository)와 이를 구현한 클래스(MemoryMemberRepository) 사이의 관계와 스프링 컨테이너 내에서의 객체(빈) 등록에 관한 이해를 요구하는 질문입니다.
이와 관련하여, “MemberRepository가 MemoryMemberRepository 인터페이스를 구현한다는 사실과 스프링 빈으로 MemoryMemberRepository 클래스의 객체가 등록되어야 한다는 가정 아래, 인프런 내에 유사한 상황을 설명하고 관련 개념을 해설하는 답변”을 찾았습니다.
참고할 만한 자료로는, 스프링 빈 문제 가 있습니다. 이 질문에서는 구체적인 구현체(SpringDataJpaMemberRepository)가 아닌 인터페이스(MemberRepository)를 스프링 빈으로 등록하는 방식과 구현체가 자동으로 연결되는 과정이 설명되어 있습니다.
강의명: 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
이 답변은 스프링 컨테이너에 등록된 빈(객체)가 인터페이스 타입인 경우, 인터페이스를 구현한 실제 객체(구현체)가 어떻게 연결되는지 설명합니다. 스프링에서는 인터페이스를 통한 프로그래밍을 권장하며, 이를 통해 구현체를 변경하더라도 코드의 수정 없이 유연하게 대처할 수 있도록 합니다.
님이 제시한 상황에서, MemberRepository 인터페이스는 MemoryMemberRepository 또는 다른 구현체를 참조할 수 있습니다. 스프링이 관리하는 빈으로 등록될 때, 인터페이스 타입으로 선언함으로써 구현체에 대한 의존성을 낮추고, 필요에 따라 다른 구현체로 교체할 수 있는 유연성을 제공합니다. 이 과정에서 스프링의 의존성 주입(Dependency Injection) 기능이 큰 역할을 합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
..
0
74
2
Unused property.....
0
98
2
project JDK is misconfigured
0
130
2
외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석
0
82
2
단위/통합 테스트 버전충돌 문제
0
91
2
❗️springboot 4.0.2 버전 aspectj dependency 설정❗️
0
228
1
왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?
0
101
2
윈도우 build test오류 질문
1
102
2
테스트 관련 공부에 대한 조언을 얻고 싶습니다
0
98
2
테스트 실행 시 에러 질문
0
289
1
name을 통한 비교와 객체를 통한 비교
0
77
1
빌드 후 libs 없음
1
128
1
윈도우 gradlew.bat 에러
0
167
1
@PostMapping("/members/new")가 동작하지 않습니다
0
88
1
java static class와 kotlin class
0
77
1
스프링 DB연결
0
126
1
소요 시간
0
85
2
ddl.sql에 빨간 밑줄
1
101
2
welcome page 에러
0
180
3
잘 모르겠습니다.
0
163
2
fail을 똑같이 쳤는데 오류가 발생해요
0
156
2
index.html Welcome page
0
121
1
프로젝트 gradle-groovy ?
0
364
1
테스트코드 메서드명 한글
0
199
2





