작성
·
262
0
안녕하세요 강사님! 강의 정말 잘 듣고 있습니다.
혹시 강의 자료가 잘못된 건지 아니면 제가 이해를 잘못한 건지 잘 모르겠어서 질문 올립니다.
강의 자료의 해당 강의 부분을 보면
org.springframework.data.repository.Repository 를 구현한 클래스는 스캔 대상
라고 되어있는데, 제가 이해한 바로는 이 부분이
org.springframework.data.jpa.repository.JpaRepository 를 상속받은 인터페이스는 스캔 대상
이렇게 수정되어야 할 것 같은데 맞을까요..??
답변 1
0
안녕하세요. 조인화님, 공식 서포터즈 y2gcoder입니다.
스캔대상으로 사용하는 Repository가 실제로 있습니다!
JpaRepository 또한 결국 org.springframewokr.data.repository 패키지의 Repository 인터페이스를 상속하고 있습니다. 그리고 해당 Repository를 스캔대상으로 삼고 있습니다!
그래서 사실 해당 Repository만 상속해서 인터페이스를 만들어도 Spring Data Jpa 라이브러리가 애플리케이션 시작 시 Repository 구현체를 만들어줍니다!
이때 Repository를 상속해서 만든 구현체와 JpaRepository를 상속해서 만든 구현체는 편의 기능에서 차이가 있습니다.
JpaRepository를 상속해서 만드는 구현체들은 save, findById 등 편의 기능들이 미리 만들어져있지만, Repository를 구현해서 만든 구현체는 위의 편의 기능들이 모두 없습니다. 위의 기능들을 직접 만들어주셔야 합니다!
경우에 따라 Repository를 상속해서 구현체 만드는 것을 선호하는 경우가 있습니다. 이는 다음 링크(클릭)을 참고해주십쇼!
감사합니다.