Spring+웹
[스프링] DI 방식 두가지 비교 (생성자 vs 세터 메서드)
동 코
2020. 5. 12. 11:20
- 생성자 방식 : 빈 객체를 생성하는 시점에 모든 의존 객체가 주입된다.
- 설정 메서드 방식 : 세터 메서드 이름을 통해 어떤 의존 객체가 주입되는 지 알 수 있다.
각 방식의 장점은 곧 다른 방식의 단점이다.
생성자 방식 장점 : 빈 객체를 생성하는 시점에 필요한 모든 의존 객체를 주입받기 때문에 객체를 사용할때 완전한 상태로 사용할 수 있다.
생성자 방식 단점 : 각인자가 어떤 의존 객체를 설정하는지 알아내려면 코드를 다 읽어봐야된다.
세터 메서드 방식 장점 : 메서드 이름만으로도 어떤 의존 객체를 설정하는지 쉽게 유추가 가능하다.
세터 메서드 방식 단점: 필요한 의존 객체를 전달하지 않아도 빈 객체가 생성되기 때문에 객체를 사용하는 시점에 NullPointException 이 발생할 수 있다.
Reference
참고 도서 : 스프링5 프로그래밍 입문 - 최범균 저