riyenas0925 / Sejong_Track_Management

:school: 세종대학교 트랙관리 프로그램
Apache License 2.0
6 stars 2 forks source link

[BUG] 빈 순환참조 오류 #166

Closed kimhanui closed 4 years ago

kimhanui commented 4 years ago

증상(로그)

***************************
APPLICATION FAILED TO START
***************************

Description:

The dependencies of some of the beans in the application context form a cycle:

┌─────┐
|  springSecurityConfig defined in file [D:\Github\Sejong-track-2019\Project-Sejong-Track-Management\target\classes\kr\ac\sejong\config\SpringSecurityConfig.class]
↑     ↓
|  authProvider defined in file [D:\Github\Sejong-track-2019\Project-Sejong-Track-Management\target\classes\kr\ac\sejong\service\CustomAuthenticationProvider.class]
↑     ↓
|  customUserDetailsService defined in file [D:\Github\Sejong-track-2019\Project-Sejong-Track-Management\target\classes\kr\ac\sejong\service\CustomUserDetailsService.class]
└─────┘

Process finished with exit code 0

원인

의존관계

SpringSecurityConfig  -> authProvider -> customUserDetailsService
          ↖    ←    ←    passwordEncoder  ←    ←      ↙

일단 임시조치로 @Inject를 쓰고 나중에 재설계 하기로 함.

해결방안

riyenas0925 commented 4 years ago

167 참고

발생

SpringSecurityConfig  -> authProvider -> customUserDetailsService
          ↖    ←    ←    passwordEncoder  ←    ←      ↙

순환 참조 오류 발생

원인

원인은 SecurityConfig에서 정의한 PasswordEncoder Bean을 위에 클래스(CustomUserDetailsService, CustomAuthenticationProvider)에서도 사용하고 있어서 순환 참조 오류 발생

해결 방안

생성자를 이용한 생성 방식으로 변경후 PasswordEncoder를 설정한 Bean을 다른 설정 파일로 이동