❌ Error Handling

Spring - Circular Dependency Error

신건우 2023. 4. 15. 13:33

❌ Spring - Circular Dependency Error (순환참조)

원인

A Class < - > B Class 가 서로의 클래스에서 의존성을 주입받는 상황에서 순환 참조 에러가 발생

img


해결

  • A <-> B 두 클래스에서 서로 DI를 받던 코드에서 한쪽의 의존성을 완전히 제거
  • 로직을 한쪽으로 이동
  • 순환참조 에러가 해결가 더이상 출력이 되지 않고, 어플리케이션이 정상 실행

의문점

  • 회원1 : 질문N, 질문1 : 답변N 의 연관관계에서

의존성 제거 / 로직이동을 순환 참조가 발생한 두 클래스에서 중 어느 클래스에서 할지에 대한 기준

N쪽에서 1을 끌어서 쓰는 방식으로 일단 해결함


내용 추가

보통 양방향 관계에서 서로 같은 의존성을 공유하는 경우 발생한다.

양방향 연관관계를 적절하게 대부분 단방향으로 바꾸고 API, 비즈니스 로직 등 작성 시,

로직을 화면에 맟춰서 적절한곳에 작성 & 순환참조를 항상 유의하면서 작성하기