순환 참조 문제(Setter 주입 vs 생성자 주입)
순환참조란 A 클래스가 B 클래스의 Bean을 주입받고, B클래스가 A 클래스의 Bean을 주입받는 상황처럼 서로 순환되어 참조되는 경우를 말한다. 특정 클래스에서 DI를 받을 수 있는 방법은 필드 주입, Setter 주입, 생성자 주입이 대표적으로 가능하다. 이번에는 지난번 Setter 주입과 생성자 주입에서 각각 순환참조 문제가 다르게 나타나는 것을 살펴본다. 준비한 예제에서는 DependencyA와 DependencyB가 서로 순환 참조를 하고 있는 상황이다. Setter 주입의 경우 class DependencyA { private DependencyB dependencyB; @Autowired void setDependencyA(DependencyB dependencyB) { this.depen..
2022.11.02