📚 @EnableJpaRepositories

정의

@EnableJpaRepositoriesSpring 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를 직접 붙이지 않아도 동작한다.
  • 다중 데이터소스에서는 entityManagerFactoryReftransactionManagerRef를 함께 맞춰야 한다.
  • 잘못된 패키지를 지정하면 Repository Bean이 등록되지 않는다.

📌 정리

  • @EnableJpaRepositories는 JPA Repository 스캔을 활성화하는 설정이다.
  • 저장소 패키지 범위를 분리하거나 다중 데이터소스를 구성할 때 유용하다.
  • @Repository와 함께 이해하면 JPA 저장소 구조를 파악하기 쉽다.

연결문서

태그: ,

카테고리:

업데이트:

댓글남기기