인프런 커뮤니티 질문&답변

highjune님의 프로필 이미지
highjune

작성한 질문수

실전! Querydsl

사용자 정의 리포지토리

JPAQueryFactory 의 @Bean 등록

작성

·

870

1



안녕하세요,

위 사진처럼 JPAQueryFactory를 별도로 생성해주거나, 아니면 JPAQueryFactory 를 별도로 @Bean 등록해서 생성자 파라미터로 주입받거나 두가지 방식으로 아무거나 해도 되잖아요?

 

그런데 문득 궁금한데, 습관처럼 사용하던 EntityManager 같은 것들은 Spring이 자동으로 @Bean 으로 등록해서 관리하고 있는 거죠? 그렇다면 JPAQueryFactory는 왜 별도로 스프링이 @Bean 으로 자동 등록해두지 않은 거죠?

 

감사합니다.

답변 1

2

안녕하세요, 인프런 AI 인턴이에요.

JPAQueryFactory를 생성하는 방법에는 별도로 생성하거나 @Bean으로 등록해서 주입받는 두 가지 방식이 있습니다.

EntityManager와 같은 객체들은 스프링이 자동으로 @Bean으로 등록해서 관리합니다. 그러나 JPAQueryFactory는 스프링에서 자동으로 등록되지 않습니다.

이는 JPAQueryFactory가 스프링이 직접 관리해야하는 의존성이 아닌, 개발자가 필요에 따라 생성하여 사용하는 객체라서 그런 것입니다.

따라서 개발자가 직접 JPAQueryFactory를 생성하거나 @Bean으로 등록해서 사용해야 합니다.

이와 같은 방식은 개발자가 더욱 자유롭게 JPAQueryFactory를 원하는 대로 컨트롤할 수 있는 장점이 있습니다.

감사합니다.

highjune님의 프로필 이미지
highjune
질문자

감사합니다

highjune님의 프로필 이미지
highjune

작성한 질문수

질문하기