책을 보며 공부하고 있다가 아래와 같은 오류가 났다.
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class
무슨말인지 모르겠어서 찾아보니까 자바버전과 스프링버전이 달라서 생기는 오류라고 한다.
현재 나는 Java 18 과 JUnit4 로 세팅이되어있는데 아마 둘 사이의 버전이 맞지 않아 생기는 오류인 것 같다.
그래서 버전을 맞추고자 Java 버전을 18 -> 8 로 낮추기로했다.
Java 8 버전을 다운로드 받았고 다음과 같은 단계를 거쳐 intellij에 Java 8 버전을 적용시켰다.
1. 자바 제어판에서 새로 다운받은 Java 8 버전 체크
2. 환경변수 편집
3. intellij에서 프로젝트 JDK 변경
그리고 기대하는 마음으로 다시 코드를 돌려보았다...
새로운 오류가 떴다.
java: error: invalid source release: 18
찾아보니 이 방법은 프로젝트 구조에서 language level만 바꾸면 되는 간단한 오류였다.
Java 8을 사용하기에 언어수준을 그에 맞춰 변경하고 재빨리 코드를 다시 돌려보았다.
역시나 새로운 오류가 떴다... 하하
java: invalid flag: --add-modules
이 오류가 날 힘들게 했다.
Java 컴파일러에서 옵션의 추가 명령줄 매개변수를 지우라는 글을 찾았고 신나서 들어갔지만
이미 추가 명령줄 매개변수에는 아무것도 없었다.
.
.
.
검색 끝에 캐쉬 무효화라는 방법을 사용해보았다.
그리고 아래 사진에 나와있는 모든 체크박스를 클릭하고 다시 시작하였다.
그리고 혹시 몰라서 환경 변수랑 JDK도 다시 설정하였다.
그랬더니 오류가 해결되었다!
오류가 생겼을때 어떤 문제인지 정확하게 알고 해결할 수 있으면
얼마나 좋을까라는 생각을 하였다.