@EnableJpaRepositories + 사용법

ILCHAN AHN·2023년 2월 16일
0

@EnableJpaRepositories는 스프링 프레임워크에서 JPA를 사용하기 위한 설정을 자동으로 처리해주는 애노테이션입니다. 이 애노테이션은 스프링 부트에서 자동으로 설정되므로, 보통 스프링 부트를 사용하는 경우에는 따로 설정할 필요가 없습니다.

JPA는 Java Persistence API의 약자로, 객체 관계 매핑(Object-Relational Mapping, ORM) 기술의 일종입니다. JPA를 사용하면, 자바 객체와 데이터베이스 간의 매핑을 자동으로 처리할 수 있습니다. 이 때, 스프링 프레임워크에서는 @EnableJpaRepositories 애노테이션을 사용하여 JPA 설정을 자동으로 처리해줍니다.

@EnableJpaRepositories 애노테이션은 스프링에서 JPA를 사용하는데 필요한 여러 설정을 처리해주는데, 주요한 설정으로는 다음과 같은 것들이 있습니다.

EntityManagerFactory 빈 등록: EntityManagerFactory는 JPA를 사용하는 데 필요한 인터페이스로, 데이터베이스와 연결하는 역할을 합니다. @EnableJpaRepositories는 EntityManagerFactory를 빈으로 등록하여 사용할 수 있도록 해줍니다.
TransactionManager 빈 등록: JPA에서는 트랜잭션을 지원하기 위해 TransactionManager를 사용합니다. @EnableJpaRepositories는 TransactionManager를 빈으로 등록하여 사용할 수 있도록 해줍니다.
JPA Repository 인터페이스 스캔: @EnableJpaRepositories는 JPA Repository 인터페이스를 스캔하여 빈으로 등록할 수 있도록 해줍니다. 이렇게 등록된 빈은 @Autowired 애노테이션을 사용하여 주입할 수 있습니다.
따라서, @EnableJpaRepositories는 JPA를 사용하는 데 필요한 여러 설정을 자동으로 처리해주기 때문에, 스프링에서 JPA를 사용할 때 매우 유용한 애노테이션입니다.

사용법

@EnableJpaRepositories은 보통 Application을 기준으로 스캔한다.
실무에서 Application의 패키지를 변경하거나 여러개가 생성되었을 경우 문제가 생기게 된다.

따라서 같은 선상에 임의의 Base 인터페이스를 만든 후,
jpaConfig 클래스 안에서 @EnableJpaRepositories(basePackageClasses = Base.class)로 처리해주면 문제를 해결할 수 있다.

profile
백엔드 개발자를 꿈꿉니다

0개의 댓글