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

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

soojinkimss님의 프로필 이미지
soojinkimss

작성한 질문수

스프링 핵심 원리 - 기본편

탐색 위치와 기본 스캔 대상

@ComponentScan(basePackages = "hello.core.order")

작성

·

31

0

[질문 내용]

탐색할 패키지의 시작 위치를 지정할 때 basePackages의 위치를 "hello.core.order 로 하였을 때 OrderServiceImpl에 @Component 와 @Autowired 어노테이션이 있으니 로그에 분명 orderServiceImpl이 나올 것으로 예상하는데 테스트 실패가 나오는 이유가 뭔지 궁금합니다.

답변 2

0

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

코드를 봐야 정확히 알겠지만, 임의로 바꾼 코드가 @ComponentScan의 basePackages 뿐이라고 한다면

orderServiceImpl이 스프링 빈으로 등록되지만, MemberService와 DiscountPolicy가 스프링 빈으로 등록이 안되어 오류가 발생하고 있을 것 같습니다 😀

 

감사합니다.

soojinkimss님의 프로필 이미지
soojinkimss
질문자

아~! 그래서 안되었구나 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다.

soojinkimss님, @ComponentScan(basePackages = "hello.core.order")를 사용하실 때 주의해야 할 점은, 해당 패키지 내의 클래스들만 스캔하여 빈으로 등록할 수 있도록 설정된다는 것입니다. 이를 설정하실 때, OrderServiceImpl 클래스가 해당 패키지에 포함되어 있는지,그리고 기대하는 대로 @Component@Autowired 어노테이션이 정확히 사용되고 있는지를 꼼꼼히 확인해 보는 것이 중요합니다.

이와 관련하여 유사한 문제에 대한 답변을 참고하시기 바랍니다. 다음 두 링크가 도움이 될 것입니다:

  1. Component와 Autowired에서요..

    • 스프링의 @ComponentScan을 통해 자동으로 빈을 등록하는 과정에서의 일반적인 문제들에 대해 설명하고 있으며, 종속성과 관련된 오류 해결법도 제시하고 있습니다.
  2. 뭐가 문제일까요..?

    • 패키지 설정의 정확성과 빈 설정 시 발생할 수 있는 NoSuchBeanDefinitionException 문제 해결에 대해 논의하고 있습니다.

각각의 답변을 통해 @ComponentScan 및 연결된 설정이 의도한 대로 작동하는지 확인하시길 바랍니다. @ComponentScan의 위치와 패키지 지정이 정말 의도한 범위로 설정되어 있는지를 다시 한번 점검해 보세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

soojinkimss님의 프로필 이미지
soojinkimss

작성한 질문수

질문하기