Spring+웹

[스프링] DI 방식 두가지 비교 (생성자 vs 세터 메서드)

동 코 2020. 5. 12. 11:20
  • 생성자 방식 : 빈 객체를 생성하는 시점에 모든 의존 객체가 주입된다.
  • 설정 메서드 방식 : 세터 메서드 이름을 통해 어떤 의존 객체가 주입되는 지 알 수 있다.

각 방식의 장점은 곧 다른 방식의 단점이다. 

 

생성자 방식 장점 : 빈 객체를 생성하는 시점에 필요한 모든 의존 객체를 주입받기 때문에 객체를 사용할때 완전한 상태로 사용할 수 있다.

생성자 방식 단점 : 각인자가 어떤 의존 객체를 설정하는지 알아내려면 코드를 다 읽어봐야된다. 

 

세터 메서드 방식 장점 : 메서드 이름만으로도 어떤 의존 객체를 설정하는지 쉽게 유추가 가능하다.

세터 메서드 방식 단점: 필요한 의존 객체를 전달하지 않아도 빈 객체가 생성되기 때문에 객체를 사용하는 시점에 NullPointException 이 발생할 수 있다.

 

 

Reference 

참고 도서 : 스프링5 프로그래밍 입문 - 최범균 저