TIL

+21 Spring DATA JPA란 무엇??

JAVABOZA 2023. 7. 5. 08:51

JPA와 Spring DATA JPA는 다르다.

 

:: 스프링부트에서 사용하는 JPA는 Spring DATA JPA로 , JPA를 더 쉽게 사용하기 위해

스프링부트에서 제공하고 있는 프레임워크임

 

Spring 부트에서 DB에 접근하기위해 사용할 때는 Repository를 사용했고,

이 레포지토리가 Spring Data JPA의 핵심이다. 


Spring Data JPA는 Spring에서 제공하는 모듈 중 하나로, 개발자가 JPA를 더 쉽고 편하게 사용할 수 있도록 도와준다.

이는 JPA를 한 단계 추상화시킨 Repository라는 인터페이스를 제공함으로써 이루어진다.

사용자가 Repository 인터페이스에 정해진 규칙대로 메소드를 입력하면, Spring이 알아서 해당 메소드 이름에 적합한 쿼리를 날리는 구현체를 만들어서 Bean으로 등록해준다.

"Spring Data JPA가 JPA를 추상화했다"는 말은, 

Spring Data JPA의 Repository의 구현에서 JPA를 사용하고 있다는 것이다.

SpringBoot 환경에서는 EntityManagerFactoryEntityManager를 자동으로 생성

 

그리고 @PersistenceContext 에노테이션을 사용해서 자동으로 생성된 EntityManager 주입 받아 사용

 

 

Spring Data JPA는 JpaRepository인터페이스를 구현하는 클래스를 자동으로 생성!!

 ㄴ Spring 서버가 on 될 때 JpaRepository 인터페이스를 상속받은 인터페이스가 자동으로 스캔

     ㄴ 이 작업 후 자동으로 SimpleJpaRepository클래스 생성 -> 해당 클래스를 Bean으로 등록

             ㄴ Repository