인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

love zoe님의 프로필 이미지
love zoe

작성한 질문수

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

회원 서비스 개발

엔티티 매니저 생성자 주입

작성

·

232

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이 제대로 주입되었는지 확인이 가능하니까요!

답변 1

2

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

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

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

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

.
감사합니다.

love zoe님의 프로필 이미지
love zoe
질문자

답변 감사합니다!!

love zoe님의 프로필 이미지
love zoe

작성한 질문수

질문하기