해결된 질문
작성
·
209
0
스프링 입문 스프링 데이터 JPA 강의에서
Spring Data JPA에서 제공하는 Repository를 구현하고 있으면 Spring Data JPA가 자동으로 구현체를 등록 해준다.
이 말씀을 하셨었는데 AppConfig가 생성자 주입으로 전달하듯이 Spring Data JPA가 Repository를 구현하고 있는 인터페이스들을 찾아서 주입 역할을 해주고 있는건가요??
@Autowired
public SpringConfig(MemberRepository memberRepository){
this.memberRepository = memberRepository;
}
@Bean
public MemberService memberService(){
return new MemberService(memberRepository);
}
여기에서 SpringDataJpaMemberRepository를 어떻게 찾아가는지 궁금해서 질문 드립니다.
(강의 보면서 SI 다니며 묵힌 갈증이 확 풀리는 것 같네요. 강의 감사히 듣고 있습니다. HTTP강의 까지 꼭 완강 하겠습니다!)
답변 1
2
안녕하세요. jeongdalma님
스프링 데이터 JPA는 해당 인터페이스들을 찾아서 동적으로 임의의 객체를 생성합니다. (소위 프록시 객체라고 하지요)
그리고 이렇게 동적으로 임의로 생성한 객체를 내부에서 스프링 빈으로 등록합니다. (마치 AOP를 만들어서 등록하는 원리와 비슷하다 생각하시면 됩니다.)
감사합니다.