• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

코드로 직접 빈을 생성하는 부분에서 질문이 있습니다.

22.02.14 13:11 작성 조회수 231

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
먼저 좋은 강의 정말 감사하게 듣고 있습니다.
@Configuration 어노테이션을 붙인 클래스에서 코드로 직접 빈을 생성하는 부분에 대한 질문입니다.
@Bean
public MemberService memberService() {
    return new MemberService(memberRepository());
}

@Bean
public MemberRepository memberRepository() {
    return new MemoryMemberRepository();
}

이 부분에서 MemberService 객체와 MemberRepository 객체를 생성하면서 Bean으로 등록하는 것으로 보입니다.

그럼 memberService Bean은 memberRepository()를 호출하면서 Service 객체에 종속되는 MemberRepository 객체를 가지게 되고, MemberRepository Bean은 또 새로운 객체를 가지게 되어서, 결국 MemberRepository 객체가 두 개가 되는 게 아닌가요? (Service의 멤버로 하나, Repository Bean 하나)

강의 영상을 보니까 제 생각이 틀린 것 같은데, 이 부분에 대해 어떻게 작동하는 건지 이해가 잘 안 됩니다.

감사합니다.

답변 1

답변을 작성해보세요.

0

David님의 프로필

David

2022.02.14

안녕하세요. Hyeokwoo Kwon님, 공식 서포터즈 David입니다.

해당 내용은 스프링 핵심 기본편 - @Configuration과 싱글톤 강의에서 자세히 설명하고 있습니다.

강의 참고 부탁드려요.

감사합니다.