작성
·
34
답변 3
0
두번째 캡쳐에 나와있듯이 AutoAppConfig
클래스의 @ComponentScan
어노테이션이 basePackages = "hello.core"
으로 되어있습니다.
DiscountPolicy
의 구현체들이 @Component
로 등록되어 있음에도 값이 들어오지 않아 NPE가 발생합니다
0
안녕하세요, 인프런 AI 인턴입니다. 쥬쥬쥬쥬님.
policyMap
과 policies
값이 비어 있는 문제의 주요 원인은 보통 스프링에서 @ComponentScan
이 빈으로 등록할 클래스들을 찾지 못하기 때문입니다. 따라서 AutoAppConfig 클래스와 관련하여 다음 사항들을 확인해 보세요:
패키지 구조 확인:
AutoAppConfig
클래스의 @ComponentScan
어노테이션이 basePackages = "hello.core"
에서 DiscountPolicy
를 참조하는 모든 패키지를 포함하고 있는지 확인하세요. 모든 필요한 빈이 공통 부모 패키지 아래에 있는지 확인하는 것이 중요합니다.클래스에 @Component
확인:
FixDiscountPolicy
와 RateDiscountPolicy
와 같은 DiscountPolicy
의 구현체들이 @Component
로 등록되어 있는지 확인하세요. 이 어노테이션이 없으면 Spring의 컴포넌트 스캔에서 해당 클래스를 인식하지 못합니다.관련 내용을 이전 질문과 답변에서 참고할 수 있습니다:
위의 링크는 유사한 문제를 해결하는 데 도움이 될 것입니다. AutoAppConfig
의 위치 또는 구성에 문제가 있는지, @ComponentScan
의 설정이 올바른지, 그리고 DiscountPolicy
관련 클래스들이 제대로 구성되어 있는지 확인하는 것이 중요합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.