정리
Q. DI 할 객체는 인터페이스 만들어야 하나요?
A. 인터페이스 만들어라!
Q. 여러가지 의존관계 주입 방식의 장단에 대해 얘기해봤으면 좋겠습니다. 책에서는 수정자 주입 방식의 장점에 대해 설명하셨는데 생성자 주입 방식이 가지는 장점도 명확하다고 생각하거든요.
A.
- 세터 주입
- 요샌 안쓴다.
- 근데 null 에러는 큰 문제 아니다.
- 세터 사용해도 런타임 시 세터로 다른거 주입? 그런식으론 코딩 안한다!! 내부 상태를 바꾸기 위해서가 아니라, 걍 초기화를 위한 것!!
- 생성자 주입
- 의 단점 : 타입이 다 다르지 않으면… 생성자 순서가 뒤바뀌어도 체크가 안된다. 근데 이것도 요새 다 기법이 있다.
- 생성자 주입 써라~! 요새 트렌드다.
Q. “getBean() 메서드를 호출하면 자신의 빈 목록에서 요청한 이름이 있는지 찾고, 있다면 빈을 생성하는 메서드를 호출해서 오브젝트를 생성시킨 후 클라이언트에 돌려준다” 여기서 “빈을 생성하는 메서드를 호출해서 오브젝트를 생성시킨 후” 부분이 해석이 조금 애매해서요 제가 알기로는 빈은 스프링 로딩 시점에 userDao()를 실행해서 만들어 놓고 같은 객체를 반환하는 걸로 알고 있는데 제가 잘못 알고 있는 걸까요 ?_?
A.
- getBean()을 쓸 시 어플리케이션 컨텍스트를 구현 클래스에서 알아야 한다… 좋지 않다.
Q. 스프링 빈은 보통 싱글톤으로 만드나요?
A.
- 싱글톤으로 만든다 생각해라~
- 빈으로 등록하는 이유 : 이 빈이 다른 빈의 의존관계를 갖고있기 때문이다.