해결된 질문
작성
·
114
0
안녕하세요.
섹션6에서 @Autowired에 대해서 공부하다가 잘 이해가 되지 않는 부분이 있어서 질문드립니다.
컨테이너는,
스프링 컨테이너 생성
스프링 컨테이너 내부의 빈 저장소에 빈 이름과 객체 등록
설정 정보를 기반으로 빈 간의 의존관계 설정
의 과정으로 생성된다고 [섹션 4]에서 학습하였습니다.
이 과정에서 이해가 잘 되지 않는 것이 있습니다.
@Component
public class MemberServiceImpl implements MemberService {
private final MemberRepository memberRepository;
@Autowired
public MemberServiceImpl(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
}
빈 저장소에 빈 이름(memberServiceImpl)과 빈 객체를 등록하려면, 생성자를 호출해야 하지 않나요??
생성자를 호출하려면 MemberRepository 타입의 빈을 찾아서 의존관계 주입을 해줘야 하는데, 이러면 컨테이너 생성 과정의 [2], [3]번이 동시에 실행되는 것이 아닌지 궁금합니다.
memberServiceImpl 빈 등록
-> 생성자 호출 필요
-> 매개 변수 MemberRepository memberRepository
전달 필요
-> memberRepository 빈을 전달함(의존 관계 주입) [순서 3]
-> 객체 생성 완료 [순서 2]
제가 이해한 빈 등록 과정입니다.
결국, 의존관계 주입과 빈 객체 등록은 동시에 이루어지는 것이 아닌지 궁금합니다.
잘못된 부분이 있는지 알려주세요!
감사합니다.