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

자동묶기

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

자동으로 묶고자 하는 <bean> 에 autowire특성을 설정 함으로서
빈을 자동으로 묶을 수 있게 한다.


자동묶기(autowire)의 타입

 1. byName - 특성의 이름과 동일한 이름이나 ID 를 가진 빈을 컨테이너에서 찾는다.

 2. byType - 특성의 타입과 동일한 타입을 가진 빈을 컨테이너에서 찾는다. (하나이상의 빈 발견시 UnsatisfiedDependencyException

 3. constructor - 빈의 생성자 중 하나의 파라미터와 맞는 하나 이상의 빈을 컨테이너에서 찾는다.

 4. autodetect - 생성자에의한 자동묶기 시도후 byType 자동묶기시도.


 - 자동묶기는 default로 byName

 <beans default-autowire="byName">

 - 자동묶기시 byName 의 경우 리팩토링할경우 xml파일 수정하지 않는이상 빈을 찾지 못한다....(당연한건가..ㅡㅡ;너무)


 tip ) autowire 를 설정하지 않은 어떤 특성이라도 여전히 프로퍼티 요소 사용 가능하다. 이는 자동묶기와 명시적묶기의 함께 사용으로서 byType설정시의 모호성 처리를 위한 방법중 한가지이다)


ex)

<bean id="courseService" class="service.CourseServiceImpl"

autowire="byName">

   <property name="courseDao">

          <ref bean="someOtherCourseDao"/>

   </property>

</bean>

728x90