스프링 부트 OAuth 구현을 하다가 순환참조 이슈가 발생하였다. 이 순환참조 이슈는 Spring Boot 2.6x 버전부터 발생한다고 한다. 앞으로 프로젝트 할 때 흔히 겪을 수 있는 문제라 일단 기록은 해두려 한다.
- 문제에러 화면
- 대충 circular references 어쩌고 나오면 순환참조 이슈이다.
- 문제가 발생되는 코드
- SecurityConfig를 빈으로 등록하려 하니 PrincipalOauth2UserService가 빈으로 사전에 등록되어야 주입이 가능하고 PrincipalOauth2UserService를 빈으로 등록하려 하니 BCryptPasswordEncoder가 미리 빈으로 등록되어서 주입을 해야 하는데 이도저도 안되니 결국 어떠한 빈도 생성하지 못한다.
- 해결책
- 순환의 고리를 끊자.
- 다른 Config 클래스에 빈으로 등록하기
- BCryptPasswordEncoder를 상속받는 클래스를 만들고 @Component로 빈으로 등록하기
- 순환의 고리를 끊자.
- 본인은 두번째 방법으로 해결하였다.
'스프링부트' 카테고리의 다른 글
설정파일 application.properties을 application.yml로 변환하기 (0) | 2023.07.21 |
---|---|
스프링 부트 + Thymeleaf 정리하기(5) (0) | 2023.07.18 |
스프링 부트 + Thymeleaf 정리하기(4) (0) | 2023.07.18 |
스프링 부트 + Thymeleaf 정리하기(3) (0) | 2023.07.18 |
스프링 부트 + Thymeleaf 정리하기(2) (0) | 2023.07.16 |