Spring Data Repository Magic

Proxy Creation Related Objects

Spring Data Repository Magic

스프링 데이터의 가장 강력한 기능 중 한 가지는 리포지토리 인터페이스만 정의해도 실제로 DB 작업을 수행할 수 있게 하는 것이다

애플리케이션 로드 시점 또는 그 이후의 시점에 내부적으로 어떤 마법이 발생해서 우리를 편하게 해주는데, 마법은 어느 스프링 데이터 하위 모듈을 사용하더라도 적용된다

이 문서는 인터페이스 리포지토리 프록시 구현체 생성 과정을 살펴보면서 마법의 실체를 파헤쳐본다

내용 구성

스프링 데이터 인터페이스 리포지토리 프록시 구현체 생성 과정에 참여하는 주요 객체를 각 목적에 따라 분류했다

Bean 글자만 제외하면 동일한 이름을 가진 클래스들이 있다

프록시 구현체 생성 관련

*RepositoriesRegistrar

RepositoryConfigurationDelegate

RepositoryBeanDefinitionBuilder

RepositoryFactoryBeanSupport

RepositoryFactorySupport

*RepositoryFactory

리포지토리 정보 추상화

RepositoryConfiguration

RepositoryConfigurationSource

데이터 모듈(스토어)별 리포지토리 설정 확장 처리

RepositoryConfigurationExtension

프록시 구현체 동작 관련 객체

QueryLookupStrategy