• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

순환 의존관계오류나신 분들 보세욥!

22.08.18 11:48 작성 조회수 1.34k

24

@Component
public class CustomBCryptPasswordEncoder extends BCryptPasswordEncoder {
}

위 처럼 따로 BcryptPasswordEncoder를 만들어주고 컨테이너에

 등록합니다!

    //해당 메서드의 리턴되는 오브젝트를 IoC로 등록해준다.
    /*
    @Bean()
    public BCryptPasswordEncoder encoder(){
        return new BCryptPasswordEncoder();
    }

     */

그리고 위의 코드(SecurityConfig)를 저처럼 주석으로 처리해주세요!

순환 참조가 나는 이유:

1. SpringContainer에서 처음 빈으로 등록하기 위해 객체를 생성 하여 줍니다(싱클톤)

2. 그래서 SecurityConfig 객체를 생성하던 중 

PrincipalOauth2UserService객체를 의존하고있네요?
그래서 PrincipalOauth2UserService를 만들어 주는데..


3. 어라? PrincipalOauth2UserService에서도 SecurityConfig에서
빈으로 등록한 BCryptPasswordEncoder를 참조하고있네??


4. 오잉? 스프링:참조가 순환되넹?아아아아아악! => 오류

즉,

SecurityConfig -> PrincipalOauth2UserService,

다시 PrincipalOauth2UserService->SecurityConfig

 

그래서 저는 SecuritiConfig -> PrincipalOauth2UserService->

CustomBCryptPasswordEncoder 로 구조를 변경하였습니다.

답변 5

·

답변을 작성해보세요.

0

CHOHEE CHA님의 프로필

CHOHEE CHA

2023.09.22

댑악😱 감사합니당!👏🏻👏🏻👏🏻

0

나현우님의 프로필

나현우

2023.01.17

앗 이렇게해보려고했는데 이미답변이있었네요! 감사합니다!

0

Nalshya님의 프로필

Nalshya

2022.10.23

감사합니다

0

강프로그래머님의 프로필

강프로그래머

2022.10.09

감사합니다.

0

감사합니다 ㅎ