더북(TheBook)

필드 주입 대신 생성자 주입 방식으로 변경하도록 3.2.1절의 프로젝트를 빠르게 구현할 수 있다. 다음 예제에 표시된 것처럼 Person 클래스만 변경하면 된다. 클래스에 대한 생성자를 정의하고 @Autowired로 애너테이션을 달아야 한다. 이제 Parrot 필드도 final로 만들 수 있으며, 구성 클래스는 변경할 필요가 없다.

예제 3-5 생성자를 이용하여 값 주입하기

@Component
public class Person {

    private String name = "Ella";
    private final Parrot parrot; ← 이제 필드를 final로 설정하여 초기화한 후 값을 변경할 수 없게 한다.

    @Autowired ← 생성자에 @Autowired 애너테이션을 사용한다.
    public Person(Parrot parrot) {
        this.parrot = parrot;
    }

    // getters와 setters 생략
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.