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

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

11 1님의 프로필 이미지
11 1

작성한 질문수

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

JPA 적용2 - 리포지토리 분석

제가 제대로 이해한 건지 궁금합니다.

해결된 질문

작성

·

32

0

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

[질문 내용]

@Import(JpaConfig.class)
@SpringBootApplication(scanBasePackages = "hello.itemservice.web")
public class ItemServiceApplication {
}

스캔 대상을 web 디렉터리로 한정했기 때문에

 

@Slf4j
@Repository
@Transactional
public class JpaItemRepository implements ItemRepository {

    private final EntityManager em;

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

여기에 @Repository가 있다고 하더라도 자동으로 스캔되지 않고, 그래서 생성자에 em이 @Autowired로 주입되는 게 아니라

 

@Configuration
public class JpaConfig {

    private final EntityManager em;

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

    @Bean
    public ItemService itemService() {
        return new ItemServiceV1(itemRepository());
    }

    @Bean
    public ItemRepository itemRepository() {
        return new JpaItemRepository(em);
    }
}

JpaConfig의 생성자에서 em을 @Autowired를 통해 자동으로 주입받은 다음, 그 em을 JpaItemRepository에 수동으로 주입했다

 

이렇게 이해하면 될까요?

답변 1

1

안녕하세요. 11 1님, 공식 서포터즈 y2gcoder입니다.

넵 저도 그렇게 이해하고 있습니다!

감사합니다.

11 1님의 프로필 이미지
11 1
질문자

답변 감사합니다!

11 1님의 프로필 이미지
11 1

작성한 질문수

질문하기