본문 바로가기

SpringFramework Core - I. IoC 컨테이너/4. 의존성

4.1.1. 생성자 기반의 의존성 주입

원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-constructor-injection

 

 

생성자 기반의 의존성 주입은, 컨테이너가 수많은 인자들을 통해서 생성자를 호출하는 방식으로 이루어진다. 특정한 인자들을 통해 static 팩토리 메서드를 호출하는 방식으로 bean을 생성하는 것과 거의 유사하다. 그리고 앞으로의 논의에서는 생성자로 넘기는 인자와 static 팩토리 메서드에 넘기는 인자에 대해 비슷하게 취급할 것이다. 다음의 예시는 생성자 주입만을 통해서만 의존성이 주입되는 클래스를 보여준다.

public class SimpleMovieLister {

     // SimpleMovieLister는 MovieFinder에 의존성을 갖는다.
     private MovieFinder movieFinder;
     
     // 스프링 컨테이너가 MovieFinder를 주입하도록 하는 생성자
     public SimpleMovieLister(MovieFinder movieFinder) {
         this.movieFinder = movieFinder;
     }
     
     // 주입된 MovieFinder를 사용하는 비즈니스 로직은 생략...
}

위 클래스는 아무것도 특별할 것이 없다. 컨테이너에 특정된 인터페이스, 클래스 또는 어노테이션에 의존성을 갖고 있지 않은 POJO다.