Java/IDE(Intellij, Eclipse)

Intellij에서 "could not autowire. no beans of" 에러가 나오는 경우

체리필터 2021. 2. 3. 09:56
728x90
반응형

Intellij 에서 Autowired annotation을 사용하면서 그동안 나지 않던 "could not autowire. no beans of" 에러가 발생하였다.

정확한 원인을 몰라 구글링 하였지만 ComponentScan을 지정하라는 등, intellij 에러 검출 옵션을 수정하라는 등 여러가지 내용이 있었지만 정확한 해결 방법은 아니였다.

이런 저런 방법을 사용하다가 해결하게 된 내용을 기술한다.

1. 먼저 import 부분을 살펴 보았다.

문제가 되었을 때의 패키지 구조는 아래와 같았다.

패키지 구조

SQSController에서 SQSClient를 Autowired 하는 것이였는데 빨간 밑줄이 가면서 오류를 내뱉고 있었다.

하지만 그와 상관 없이 빌드 및 실행은 잘 되고 있는 상태

강제로 import를 해 보고자 "import com.kst.macaront.rtc.api.sqs.SQSClient;"를 넣었는데 자동완성으로 import는 되는데 작성된 내용에서 SQSClient가 빨간색으로 변하면서 못 찾는다고 나오는 현상이 발생했다.

 

 

2. 리팩토링이 문제인가?

패키지 구조를 바꾸기 위해 리팩토링을 했었다.

원래 구조는 com.kst.macaront.rtc 아래 바로 sqs 패키지가 존재하였다가 api 밑으로 옮겨 온 것이였는데 왠지 의심이 가기 시작.

그래서 intellij의 refactoring 기능을 이용하여 SQSClient를 원래 있던 com.kst.macaront.rtc.sqs 패키지로 옮겨 보았다.

그랬더니 오류가 없어짐 ㅠㅠ

그 이후 다시 지금과 같은 com.kst.macaront.rtc.api.sqs 패키지로 옮겨오니 역시나 오류 발생하지 않네요.

 

결론

결론은 Intellij 버그이며, 패키지를 이리 저리 옮겨 보면 다시 인식하면서 오류 메시지는 사라지네요.

728x90
반응형
1 2 3 4