SpringConfig에서 질문있습니다
265
2 asked
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예
[질문 내용]
스프링 데이터 JPA의 동작방식을 SpringDataJpaMemberRepository가 JpaRepository 와 MemberRepository를 상속받고 그중 JpaRepository덕분에 스프링빈으로 자동등록된다고 이해했습니다. 그런데 왜 SpringConfig에서 이를 사용하기위해 아래와같이 memberRepository를 넘겨주는 것인지 이해가 가지 않습니다..ㅠㅠ SpringDataJpaMemberRepository는 어디에 쓰이는 건가요..?
@Bean
public MemberService memberService(){
return new MemberService(memberRepository);
}
Answer 2
0
답변감사합니다:)
제가 궁금한 것은 그러면 어떻게 memberRepository가 들어갈 곳에 SpringDataJpaMemberRepository을 알아서 찾아 넣어주는 것인지입니다.
아래 코드에서는 SpringDataJpaMemberRepository가 extends뒤에 두개를 상속받았는데 답변달아주신것에서 memberRepository를 넘겨줬을때 어떻게 스프링컨테이너는 SpringDataJpaMemberRepository빈을 찾는 행위를 하는 것인지 궁금합니다.
public interface SpringDataJpaMemberRepository extends JpaRepository<Member, Long>, MemberRepository {
// select m from Member m where m.name = ?
@Override
Optional<Member> findByName(String name);
}
0
안녕하세요. sossont님, 공식 서포터즈 David입니다.
.
SpringConfig의 생성자를 보시면 memberRepository 의존관계를 주입받고 있습니다.
생성자에 @Autowired가 붙어있으므로 MemberRepository 타입으로 받을 수 있는 빈을 찾아서 넘겨주게 됩니다.
SpringDataJpaMemberRepository가 JpaRepository로 인해 빈으로 등록되므로 스프링은 SpringConfig 생성자의 memberRepository에 SpringDataJpaMemberRepository빈을 찾아 주입하게 됩니다.
즉, SpringConfig의 MemberRepository memberRepository 변수가 갖고 있는 것은 SpringDataJpaMemberRepository가 되는 것입니다.
따라서 이미 SpringDataJpaMemberRepository가 쓰이고 있는 겁니다.
.
감사합니다.
..
0
76
2
Unused property.....
0
99
2
project JDK is misconfigured
0
132
2
외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석
0
82
2
단위/통합 테스트 버전충돌 문제
0
91
2
❗️springboot 4.0.2 버전 aspectj dependency 설정❗️
0
230
1
왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?
0
102
2
윈도우 build test오류 질문
1
102
2
테스트 관련 공부에 대한 조언을 얻고 싶습니다
0
99
2
테스트 실행 시 에러 질문
0
291
1
name을 통한 비교와 객체를 통한 비교
0
77
1
빌드 후 libs 없음
1
129
1
윈도우 gradlew.bat 에러
0
167
1
@PostMapping("/members/new")가 동작하지 않습니다
0
88
1
java static class와 kotlin class
0
79
1
스프링 DB연결
0
126
1
소요 시간
0
85
2
ddl.sql에 빨간 밑줄
1
101
2
welcome page 에러
0
181
3
잘 모르겠습니다.
0
164
2
fail을 똑같이 쳤는데 오류가 발생해요
0
156
2
index.html Welcome page
0
121
1
프로젝트 gradle-groovy ?
0
369
1
테스트코드 메서드명 한글
0
202
2

