[JPA] 스프링 데이터 JPA 원리

Junseo Kim·2020년 3월 23일
0

Spring data JPA 원리

Data Access Object 역할을 하는 Repository를 만들 수 있다.

예전에는 아래와 같이 Repository를 만들어 사용했었다.

그러나, 이렇게 하면 테스트 코드도 작성해야하고, 여러 번거로움이 많다.

Spring data JPA는 repository를 오직 interface로 개발할 수 있다. @Repository 애노테이션도 붙여줄 필요가 없다.

실행 하는 것도 entityManager를 써서 복잡하게 했던 것을 쉽게 할 수 있다. 기본적인 CRUD는 모두 제공한다.

원리

원래 Spring boot가 아니고 그냥 spring이라면, 메인 애플리케이션에 @EnableJpaRepositories 애노테이션을 붙여줘야한다. 그 내부의 JpaRepositoriesRegistrar에 의해 만들어준 repository를 사용할 수 있게 되는 것이다.

우리가 임의로 만들어준 repository(JpaRepository를 상속받은)들은 프로그래밍을 통해, Bean으로 등록된다.

내부적으로는 ImportBeanDefinitionReistrar 인터페이스 구현체에 의해 Bean으로 등록되는 프로그래밍이 복잡하게 이뤄지는 것이다.

따라서 JpaRepository를 상속받으면 Bean으로 등록되므로, 우리가 주입받아서 사용할 수 있는 것이다.

0개의 댓글