IntelliJ 'Autowired members must be defined in valid Spring Bean' 경고 원인 및 없애기
IntelliJ로 스프링 개발 도중 자동 의존주입을 위해 @Autowired를 필드에 걸어주었더니 경고 밑줄이 그어졌습니다.



경고 원인
경고 내용을 보니 자동의존주입을 받기 위해서는 현재 클래스 또한 마찬가지로 @Component 등의 스테레오타입 어노테이션을 통해 스프링 빈으로 등록되어 있어야 한다는것 같네요.





해결방법1
즉 다음과 같이 MemberWebservice 또한 스프링 빈으로 등록되어 있어야 한다는 뜻입니다. @Service 어노테이션을 걸어두니 곧바로 경고가 사라졌습니다.





해결방법2
그러나 저와 같이 XML 설정에서 빈으로 등록해 주고 자바 @Autowired 어노테이션으로 의존주입을 받는 식으로 사용하는 경우가 있을것입니다.




이 경우 프로젝트 설정에서 XML 설정파일을 인식해 주어 빈으로 잘 등록되어 있으니 걱정하지 말라고 알려주는것입니다.
Ctrl + Alt + Shift + S 또는 File > Project Structure...



Modules > Spring > Spring Appicaion Context 에서 +를 클릭



설정 파일에 체크 후 OK하고 프로젝트 설정을 저장 후 종료합니다.






해결방법3
마지막 방법으로는 이런 경우에 경고로 표시되지 않도록 하는것입니다.

IntelliJ 실행 > 상단 File > Settings...에 들어가거나 Ctrl + Alt + S 단축키를 이용합니다.



Editor > Inspections > Spring > Spring  Core > Code > Autowired members defined in invalid Sping bean에 체크 해제 후 저장



블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

,