인프런 커뮤니티 질문&답변
Autowired 빨간줄 이유
해결된 질문
작성
·
525
·
수정됨
퀴즈
66%나 틀려요. 한번 도전해보세요!
필드 주입(Field Injection) 방식이 일반적으로 권장되지 않는 이유는 무엇일까요?
불변성을 보장하기 어려워서
의존성 변경이 쉬워서
순수 Java 코드로 테스트하기 어려워서
설정 코드 작성이 복잡해서
답변 1
3
안녕하세요. kong님, 공식 서포터즈 y2gcoder입니다.
말씀하신 것이 맞습니다. 기본적으로 @Autowired는 사용하는 대상 클래스가 빈으로 등록되어야 적용되기 때문입니다. 다만 해당 빨간 줄은 IDE에서 런타임 전에 코드만 분석하여 판단하고 표시해주는 일종의 Warning입니다. 해당 테스트 코드에서는 ApplicationContext 를 통해 스프링 컨테이너를 임의로 만들고, 컨테이너 내에 DiscountService를 직접 주입하는 방식으로 만들고 있습니다. 이를 IDE에서 감지하지 못해 저렇게 빨간 줄을 띄우고 있는 것입니다!
감사합니다.






Autowired 빨간줄 뜨는 이유가 DiscountService를 Component로 등록하지 않아서 그런건가요? 의존관계를 주입할 때는 항상 Component로 등록되어야하는지도 궁금합니다