본문 바로가기

웹 개발/Spring

[Spring] 의존성 주입 - 생성자 주입 vs setter 주입

방식 생성자 주입방식 setter 메서드 주입방식 
개념 생성자 인자값에 주입할 객체를 할당해 주입하는 방식 setter 메서드로 의존객체를 지정하는 방식
특징 -생성하는 시점에 모든 의존 객체가 주입된다
-한번 생성한 객체를 변경할 일이 없을때 주로 사용
setter 메서드로 의존하는 객체를 지정할 수 있음
장단점 한번 생성하고 나면 생성시점에 빈 객체가 필요로 하는 모든 의존 객체를 주입받는다.

파라미터가 많은 경우 의존 객체를 확인하는 작업이 간단하지 않다.
XML 파일에서 <property> 태그의 name 속성을 통해 주입되는 의존객체 확인이 간단하다.

XML 에서 지정한 <property> 태그가 빠져도 빈 객체가 생성되기에 특정 객체 사용시점에 NullPointerException 이 발생할 수 있음.