• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

컨테이너 생성

24.03.31 01:36 작성 24.03.31 02:02 수정 조회수 91

0

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

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

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

[질문 내용]
여기에 질문 내용을 남겨주세요.

 

강의에서 AllBeanTest 클래스에서 스프링 컨테이너 생성할 때, 구성 정보로 AutoAppConfig.class 외에도 DiscountService.class를 넣어주셨습니다.

이렇게 넣어준 이유는 AllBeanTest 클래스는 Test 코드로 AutoAppConfig의 하위폴더에 속하지 않아, 따로 DiscountSerVice.class를 구성 정보로 넣어주신건가요?

의존관계 자동 주입 범위를 알고 싶습니다. 구성 정보로 넣은 클래스가 속한 폴더를 포함해 하위 폴더에서 Annotation을 알맞게 기입한 클래스를 빈으로 등록하고 의존관계를 주입시켜주는게 맞을까요?

 

DiscountService 클래스는 자동등록을 통해 빈으로 등록된건가요? 아니면 수동 등록을 통해 빈으로 등록된건가요? 전자라면 왜 @Component가 없는지 후자라면 왜 @Bean이 없는지 알고 싶습니다.

 

답변 1

답변을 작성해보세요.

0

OMG님의 프로필

OMG

2024.03.31

안녕하세요. 봄날님, 공식 서포터즈 OMG입니다.

AllBeanTest 클래스는 Test 코드로 AutoAppConfig의 하위폴더에 속하지 않아, 따로 DiscountSerVice.class를 구성 정보로 넣어주신건가요?

네 맞습니다. AutoAppConfig는 자동 스캔의 설정으로 자동 빈 등록 대상을 빈으로 등록할 수 있지만, DiscountService는 그 대상이 아닙니다. 그래서 스프링 컨테이너에 직접 스프링 빈으로 등록하기 위해 인자로 추가하였습니다.

의존관계 자동 주입 범위를 알고 싶습니다. 구성 정보로 넣은 클래스가 속한 폴더를 포함해 하위 폴더에서 Annotation을 알맞게 기입한 클래스를 빈으로 등록하고 의존관계를 주입시켜주는게 맞을까요?

본 질문이 섹션 7. 의존관계 자동 주입 조회한 빈이 모두 필요할 때, List, Map 강의 수강 중 남겨주신 질문으로 확인이 되는데요, 섹션 6. 컴포넌트 스캔 탐색 위치와 기본 스캔 대상에서 질문 내용에 대한 설명을 자세히 해주십니다. 강의를 복습해보시고, 이해가 덜 되거나 이해한 내용이 맞는지 확인 질문을 댓글이나 글을 새로 작성해주시는게 봄날님에게 더 도움이 되는 방향 같습니다 😀

DiscountService 클래스는 자동등록을 통해 빈으로 등록된건가요? 아니면 수동 등록을 통해 빈으로 등록된건가요? 전자라면 왜 @Component가 없는지 후자라면 왜 @Bean이 없는지 알고 싶습니다.

@Component, @Bean의 사용 없이, 스프링 컨테이너에 직접 스프링 빈을 등록하는 과정이라고 보시면 될 것 같습니다.

다음 링크(클릭)을 참고해주세요 😀

감사합니다.