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

김아현님의 프로필 이미지
김아현

작성한 질문수

스프링 핵심 원리 - 기본편

프로토타입 스코프 - 싱글톤 빈과 함께 사용시 Provider로 문제 해결

@Autowired 빨간줄

작성

·

2.1K

0

 

@Scope("singleton")
static class ClientBean{
    @Autowired
    private Provider<PrototypeBean> provider;
    public int logic() {
        PrototypeBean prototypeBean = provider.get();
        prototypeBean.addCount();
        int count = prototypeBean.getCount();
        return count;
    }
}

위에 코드 @Autowired 에 빨간줄이 생기면서

Inspection 'Incorrect autowiring in Spring bean components' options 오류 메시지가 뜨네요

그런데 테스트 실행은 정상작동 되던데 뭐가 문제인가요?

답변 1

8

저도 강의보다가 빨간줄이 떠서 답변이 있을까해서 왔는데 없네요. 일단 해결했기에 제 해결방법을 남겨봅니다.

PrototypeBean과ClientBean에 @Component를 붙여주면 해결되실겁니다.

추측으로서는 테스트시에는 AnnotationConfigApplicationContext에 직접 빈을 등록하고 있기 때문에 테스트는 실패하지 않는것으로 보이고

IDE에서는 컴포넌트 자동스캔설정도 안되어있고 설정정보도없기에 autowired안되요 라고 빨간줄로 보여주는것 같습니다.

김아현님의 프로필 이미지
김아현
질문자

감사합니당

김아현님의 프로필 이미지
김아현

작성한 질문수

질문하기