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

sde101573님의 프로필 이미지
sde101573

작성한 질문수

스프링 DB 2편 - 데이터 접근 활용 기술

실용적인 구조

의존성 주입

작성

·

288

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
강의를 듣다가 순간 애매해서 질문드립니다. V2config에서

해당 코드를

@Bean
public ItemService itemService() {
    return new ItemServiceV2(itemRepositoryV2, itemQueryRepositoryV2());
}

@Bean
    public ItemQueryRepositoryV2 itemQueryRepositoryV2(){
        return new ItemQueryRepositoryV2(em);
    }
@Bean
public ItemService itemService() {
    return new ItemServiceV2(itemRepositoryV2, new ItemQueryRepositoryV2(em));
}

/**
@Bean
    public ItemQueryRepositoryV2 itemQueryRepositoryV2(){
        return new ItemQueryRepositoryV2(em);
    }
**/

처럼 ItemQueryRepositoryV2부분은 주석처리 해서 @Bean으로 등록을 하지 않으면 작동이 안돼야 할까요?? 변경하고 작동해봤는데 문제가 없어서 질문드립니다.

답변 1

0

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

메서드 호출 대신 new ItemQueryRepositoryV2(em)를 통해 객체를 생성하여 주입하고 있기 때문입니다.

다른 곳에서 ItemQueryRepositoryV2를 사용하려면 새롭게 생성해야 하기 때문에 싱글톤 빈을 사용하는 기존과 다른 방식으로 의존관계를 주입하게 되는 것입니다.

감사합니다.

sde101573님의 프로필 이미지
sde101573

작성한 질문수

질문하기