@EnableJpaRepositories
📚 @EnableJpaRepositories
정의
@EnableJpaRepositories는 Spring Data JPA의 Repository 인터페이스를 스캔하고 Bean으로 등록하는 설정 애너테이션이다.JpaRepository,CrudRepository,PagingAndSortingRepository같은 저장소 인터페이스를 사용할 수 있게 해준다.
JPA 저장소를 Spring 컨테이너가 인식하도록 활성화할 때 사용한다.
🧩 역할
- JPA Repository Bean을 활성화한다
- 지정한 패키지 범위에서 Repository 인터페이스를 스캔한다
- 다중 데이터소스 환경에서 저장소 범위를 분리할 수 있게 해준다
🛠 사용법
기본 설정
@Configuration
@EnableJpaRepositories(basePackages = "org.infinity.server.repository")
public class JpaConfiguration {
}
주요 속성
| 속성 | 설명 |
|---|---|
basePackages |
Repository를 스캔할 패키지 지정 |
basePackageClasses |
기준 클래스를 통해 패키지 범위 지정 |
entityManagerFactoryRef |
사용할 EntityManagerFactory 지정 |
transactionManagerRef |
사용할 TransactionManager 지정 |
repositoryBaseClass |
공통 Repository 구현체 지정 |
다중 설정 예시
@Configuration
@EnableJpaRepositories(
basePackages = "org.infinity.server.repository",
entityManagerFactoryRef = "entityManagerFactory",
transactionManagerRef = "transactionManager"
)
public class JpaConfiguration {
}
⚠️ 주의사항
basePackages를 지정하지 않으면 설정 클래스가 위치한 패키지와 하위 패키지를 기준으로 스캔한다.- Repository 인터페이스는 일반적으로
@Repository를 직접 붙이지 않아도 동작한다. - 다중 데이터소스에서는
entityManagerFactoryRef와transactionManagerRef를 함께 맞춰야 한다. - 잘못된 패키지를 지정하면 Repository Bean이 등록되지 않는다.
📌 정리
@EnableJpaRepositories는 JPA Repository 스캔을 활성화하는 설정이다.- 저장소 패키지 범위를 분리하거나 다중 데이터소스를 구성할 때 유용하다.
@Repository와 함께 이해하면 JPA 저장소 구조를 파악하기 쉽다.
댓글남기기