작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
444
·
수정됨
0
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
@Autowired 입력시 빨간줄이 뜹니다
무시하고
테스트 코드 동작시에는 통과로 뜨지만,
키값과 값이 비어있습니다.
에러 내용은 다음과 같습니다.
Autowired members must be defined in valid Spring bean (@Component|@Service|...)
@Component를 추가하면 없어지지만,
테스트 코드 실행시 키값과 값이 비어있는것은 동일합니다..
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
이한준 님께서 질문하신 @Autowired
에서 빨간줄이 생기고 테스트 시 결과가 비어있는 것에 대해 질문해주셨습니다.
@Autowired
에 대한 이해와 관련하여 유사 질문이 있던 관련 내용을 찾아보았습니다. 다음 링크의 게시글이 이한준 님의 질문과 유사한 상황을 다루고 있습니다:
위 질문에서도 @Autowired
관련 어노테이션 사용에 대한 문제점이 제기되었습니다. 해당 링크의 답변에서는 스프링 컨테이너가 두 개 생성돼서 생기는 문제점과 실행 상의 불일치를 지적하고 있습니다. 이와 유사하게, 이한준 님의 경우에도 @Component
어노테이션을 추가함으로써 스프링 빈으로 인식하게 하면 IntelliJ 등의 IDE에서 빨간줄이 사라지는 것을 볼 수 있습니다.
빈으로 등록하지 않은 클래스의 경우 @Autowired
를 사용하려고 하면, IDE에서 에러를 표시하는 것이 일반적입니다. 그러나 테스트 코드를 실행했을 때 예상과 달리 맵이나 리스트가 비어있다면, 스프링 컨테이너가 제대로 빈을 등록하지 못했거나, 빈의 스코프 설정이 잘못되었을 가능성이 있습니다.
추가적으로 @Component
를 추가하신 상태에서도 키값과 값이 비어있는 것은, 테스트 코드 상에서 해당 빈들에 대한 의존성을 주입하는 과정에서 문제가 발생했을 수 있습니다. 테스트 클래스 내에서 등록된 빈들을 정확하게 참조하고 있는지, 또는 테스트 실행 환경(예: 프로파일 설정, 테스트 구성)에 문제가 없는지 확인할 필요가 있습니다.
테스트 코드 동작이 통과한다는 것은 스프링 애플리케이션 컨텍스트가 올바르게 로딩되고 있음을 의미하지만, 빈의 실제 동작은 그 결과와 독립적일 수 있습니다. 테스트 케이스에서 @Autowired
로 주입받는 빈들이 실제로 기대하는 값으로 초기화 되었는지, 또는 주입 과정에서 문제가 발생했는지 디버깅을 통해 확인하셔야 합니다.
관련하여, 해당 강의의 지식공유자 또는 다른 수강생들의 질문을 참고하거나, 질문 게시판에서 추가적인 도움을 요청할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.