빈의 순환참조(circular reference) 문제 Gradle jdk 버전 맞췄는데 계속오류뜨는 사람보세요.

yujin kim·2024년 9월 16일


Spring 공부를 하면서 회원가입/로그인을 구현하는 도중 , 서버를 실행시키려다 계속해서 JAVA21버전과 Gradle 버전이 호환이 되지 않는다는 오류가 계속해서 발생하였습니다.
Gradle 버전을 계속해서 업그레이드 하면서 맞추어 보았지만
같은오류.........
빌드 메세지를 자세히 보는 순환참조문제 인것 같아 , 확인해 보니

SecurityConfig 클래스에서 UserService빈을 참조하고 있고,
UserService 클래스에서 PasswordEncoder빈을 참조하고 있고,
PasswordEncoder 빈은 SecurityConfig에서 정의되어있습니다.

결과적으로 SecurityConfig->UserService->SecurityConfig의 순환참조가 발생하였습니다.

해결방법


원래는 SecurutyConfig 클래스에서 불러와진던 PasswordEncoder를

UserSerivce클래스에서 처리하게 코드를 바꾸었습니다.

결론적으로 PasswordEncoder빈 생성위치를 UserService로 이동하여 순환참조를 제거 하였습니다.

profile
에러제조기 좀좀따리 지식...

0개의 댓글