아무코딩

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

Spring+웹

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

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

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

 

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

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

 

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

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

 

 

Reference 

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

'Spring+웹' 카테고리의 다른 글

[스프링] 이클립스 톰캣 설정(Mac OS)  (0) 2020.05.13
[스프링] AOP 와 프록시 패턴  (0) 2020.05.13
스프링 DI  (0) 2020.04.26
[웹/부스트코스] Servlet Lifecycle  (0) 2020.04.24
[웹] Servlet  (0) 2020.04.23
Comments