[Error]policyMap,policies Null(빈 Map과 List 조회)

쟈니·2024년 1월 27일

Error

목록 보기
3/3

❗️policyMap,policies NullPoint(빈 Map과 List 조회)

김영한 강사님의 기본편 session7을 듣는 중 @Autowired가 되지 않는 것을 발견되었다.
@Autowired 오류에 대한 다른 분의 질문과 답변이 있었으나 다른 문제가 발생하였다.

문제에 대한 답변

  1. @Autowired로 인한 스프링 컨테이너 이중 생성으로 이한 실행 상 불일치
    -> @Component를 통한 스프링 빈 인식
  2. @Component 추가 상태에서 빈 맵과 리스트
    -> 의존성 주입 과정에서의 문제

문제 2 : 빈 policyMap과 policies

@Component를 붙여 @Autowired에 빈을 등록해주었는데 문제는 빈 맵과 리스트가 출력되었다.
결국 2번의 문제가 발생되었다.

문제 3 : org.springframework.beans.factory.UnsatisfiedDependencyException(중복 빈 충돌)

⚒️ 해결방법

  1. AutoConfig.class의 basePackages를 수정하자!
    이전 강의에서 @ComponentScan을 학습할 때 basePackagesmember 패키지로 등록되면서 basePackages만 스캔되는 문제로 DiscountService에 @Component를 추가해도 빈 등록이 되지 않는 것이었다.(범위 밖이므로)
    basePackages

    -> 수정후

    basePackages를 주석처리하게 되면 AppConfigTest에 오류가 발생
    범위를 core까지 바꾸어 기존 테스트들도 문제가 없게 만들었다.

  1. orderServiceImpl의 @Component 삭제
    빈 2개의 충돌 오류에 대한 글에서 현재 강의 내용이 빈 중복 등록으로 인한 상황에서 빈을 map과 list로 관리하는 내용인데 빈 두 개가 충돌난다는 당연한 오류가 떴다.
  • orderServiceImpl@Component 삭제하면 component는 DiscountService로 등록되므로 문제가 해결된다!
profile
시작은 미미하나 끝은 쥬쥬하다.

0개의 댓글