강의

멘토링

로드맵

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

나 좀 도와줘요님의 프로필 이미지
나 좀 도와줘요

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

회원 서비스 개발

엔티티 매니저 생성자 주입

작성

·

285

0

안녕하세요 강사님 강의 내용 중 궁금한 점이 있어 질문드립니다.

 

강의 마지막 부분에서 EntityManager를 생성자 주입으로 바꾸는 코드에서 

@Autowired // Create EntityManager
private EntityManager em;

public MemberRepository(EntityManager em) {
this.em = em;
}

이렇게 코드를 작성하셨는데

// Create EntityManager
private EntityManager em;

@Autowired
public MemberRepository(EntityManager em) {
this.em = em;
}

이렇게 생성자에 @Autowired를 붙이는 코드가 더 좋은 코드 아닌가요?? 강사님 말씀처럼 컴파일 시점에 em이 제대로 주입되었는지 확인이 가능하니까요!

퀴즈

JPA에서 SQL과 JPQL 쿼리의 주요 차이점은 무엇인가요?

성능 최적화 방식

데이터 타입 지원 범위

테이블 기반 vs 엔티티 객체 기반

파라미터 바인딩 방식

답변 1

2

안녕하세요. 비달구름님, 공식 서포터즈 David입니다.

.
해당 부분은 @RequiredArgsConstructor를 설명하시다가 
필드주입이냐 생성자주입이냐를 신경쓰지 않고 "EntityManager를 Injection받는 것"에 대해 언급하신 것 같습니다.

그리고 말씀하신대로 필드주입보다는 생성자주입으로 구현하시는게 더 나은게 맞습니다.

또한 스프링부트에서는 생성자가 1개일 때는 @Autowired를 생략할 수 있습니다.

.
감사합니다.

답변 감사합니다!!

나 좀 도와줘요님의 프로필 이미지
나 좀 도와줘요

작성한 질문수

질문하기