본문 바로가기
오류를 개발새발

The dependencies of some of the beans in the application context form a cycle: 빈 순환 참조 문제를 클래스 설계 수정으로 해결하기

by 휴일이 2023. 3. 22.

 

빈 순환 참조 문제가 발생했다

 

 

요렇게 빈을 만드려고 하니까 서로가 서로를 참조하기 때문에

대체 어떻게 해야할지 모르겠다는 얘기....

 

 

사실 이거는 내가 직접

@Bean 해서 빈 등록을 해줘도 되기는 하는데

 

토비의 스프링인가? 강의였나? 어디에서 봤었는데

빈 순환 참조 문제는 설계 자체가 잘못되었다는 얘기이기 때문에

한 번 설계를 돌아보라는 얘기를 들었었다

 

문제 자체는 금방 보여서

그냥 뜯어 고치기로 +_+

 

 

 

 

 

이렇게 MemberLoginService 에서 UserDetailsService를 이용하고 있는데

 

 

UserDetailsService 에서도 MemberLoginService 를 이용하기 때문에

이런 문제가 발생했던 것이었는데

 

 

 

1. MemberLoginService 에서는 UserDetailsService가 반드시 필요함

2. UserDetailsService 에서는 MemberLoginService가 사용하는 MemberRepository만 필요함

이 두 가지를 이용해서

 

 

여기서는 리포지토리를 직접 사용하게 하고

 

 

 

여기서는 리포지토리를 삭제했다 (어차피 필요 없었음, 나중에 필요하면 추가해야지)

 

 

이렇게 UserDetailsService의 MemberService 의존을 끊어주자

 

 

 

 

서버가 제대로 빌드 되는 것을 볼 수 있다 ^0^/

728x90