본문 바로가기

Advance I/Spring Data JPA

22.06.28 :: 실전! 스프링 데이터 JPA

공통 인터페이스 기능

공통 인터페이스 설정

JavaConfig 설정

스프링 부트 사용시 생략 가능

@Configuration

@EnableJpaRepositories(basePackages = "jpabook.jpashop.repository")

public class AppConfig {}

 

스프링 부트 사용시 @SpringBootApplication 위치를 지정(해당 패키지와 하위 패키지 인식)

 

스프링 데이터 JPA가 구현 클래스를 생성

1. 개발자: Interface extends JpaRepository<T, ID> 정의  *T: 엔티티 타입 ID: 식별자 타입(PK)

2. 애플리케이션 로딩 시점에 구현 클래스를 대신 생성

 

- 실제로 리포지토리 객체를 getClass()로 출력해보면 프록시 객체로 나옴

- @Repository 애노테이션 생략 가능

 컴포넌트 스캔 X,  스프링이 동적으로 구현 클래스를 생성하여 의존성 주입

 JPA 예외를 스프링 예외로 변환하는 과정도 자동으로 처리

- 구현체의 메서드가 내부적으로 동작하는 방식도 순수 jpa만 사용한 기존 코드와 유사하다.

 

JpaRepository나 CrudRepository 같은 인터페이스에 @Repository 어노테이션이 안붙는 이유에 대해서 궁금합니다. - 인프런 | 질문 & 답변 (inflearn.com)

 

'Advance I > Spring Data JPA' 카테고리의 다른 글

22.07.06  (0) 2022.07.06
22.07.04  (0) 2022.07.04
22.07.02  (0) 2022.07.02
22.07.01  (0) 2022.07.01
22.06.30  (0) 2022.06.30