프로그래머의 삶 Programmer's Life/SpringFramework

묶기

Oliver's World 2008. 11. 1. 15:42
728x90

묶기(wiring) - 스프링 컨테이너 안에서 빈들을 짜맞추는것

 묶기 조건 -  1. 어떤빈들이 사용될지

                   2. 묶기 위해 어떻게 의존성 주입을 사용할지

  위의 두가지 조건을 컨테이너에게 알려줘야 한다.

생성자 주입 입장

 1. 생성자 주입은 강한 의존성 계약을 강제한다. 일단 인스턴스화되면 빈은 완벽하게 유효하며 즉시 사용가능한 상태가 된다.

 2 . 의존성이 생성자를 통한 설정이므로 불필요한 세터 메소드를 가질 필요가 없다. (코드의 최소화)

 3. 생성자를 통해서만 특성을 설정. (변경되지 않는 특성 immutable property 이 되는 효과


세터 주입 이장

 1. 빈이 여러개의 의존성을 갖는 경우 생성자 파라미터목록이 길어진다.

 2. 특정한 생성자 식별이 어렵다.

 3. 생성자가 동일 타입 두개 이상의 파라미터를 취한다면 파악이 어려워진다.

 4. 생성자 주입은 그 자체로 즉시 상속 불가. (부모객체의 private 특성설정을 위해서는 생성자에서 super()로 넘겨야 한다. )

 - 모호한 생성자의 경우 org.springframework.beans.factory.UnsatisfiedDependencyException 을 던짐으로서 존재여부를 확인

 <constructor-arg> 의 모호함을 인자의 순서를 지정하는 index속성 방법(생성순서지정하는 것으로서 0부터 시작) 과 type 속성 방법 (ex...string...int...이런?)

728x90