Circular dependency(순환 의존성)
육하 원칙으로 개념을 정리해보자...
- 누가 발생시키나요?
- 언제 발생하나요?
- @Bean으로 Spring IoC 컨테이너에 등록할 때
- 어디서 발생하나요?
- 두 객체의 생성자 주입방법이 서로의 인스턴스인 곳에서 발생
- 무엇을 발생시키나요?
- BeanCurrentlyInCreationException을 냅니다.
- 어떻게 동작하나요?
- Spring의 Bean 생성 순서 Bean A(B) > Bean B(C) > Bean C()
- Bean C를 생성
- Bean B를 생성 후 Bean C를 주입
- Bean A를 생성 후 Bean B를 주입
- 왜 에러가 날까요?
- Bean A(B) > Bean B(A)의 경우
- 서로가 객체의 의존성 주입를 실행하면서 무한 재귀나 기타 오류가 발생할 수 있습니다.