만약 bean이 다른 bean에게 의존성을 제공한다면, 이는 주입받는 bean의 프로퍼티가 된다는 것을 의미한다. XML 기반의 설정 메타데이터에서는 보통 <ref/> 요소를 통해 이루어진다. 그러나 가끔은 의존성이 덜 직접적인 경우가 있다. 데이터베이스 드라이버 등록처럼 static한 initializer가 발동되어야 하는 경우가 그 예시다. 'depends-on' 속성은 이 속성을 사용하는 bean이 초기화되기 전에, 의존성 bean들이 초기화될 수 있도록 명확하게 강제한다. 다음 예시는 하나의 bean에 depends-on 속성을 사용하여 나타낸 의존성이다.
<bean id="beanOne" class="ExampleBean" depends-on="manager" />
<bean id="manager" class="ManagerBean" />
여러 bean들에 의존성을 표시하려면, depends-on 속성에 bean들의 이름을 리스트로 제공하면 된다. 이때 콤마(,), 스페이스( ), 세미콜론(;)이 유효한 구분자가 된다.
<bean id="beanOne" class="ExampleBean" depends-on="manager, accountDao">
<property name="manager" ref="manager" />
</bean>
<bean id="manager" class="ManagerBean" />
<bean id="accountDao" class="x.y.jdbc.JdbcAccountDao" />
※ depends-on 속성을 통해 의존성의 초기화 타이밍을 설정할 수 있다. 싱글턴 bean에서는 의존성의 소멸 타이밍까지 설정할 수 있다. depends-on 관계를 통해 의존하는 bean들이 먼저 소멸되고나면, 의존성을 제공하던 bean들이 스스로 소멸된다. 그러므로 depends-on은 shutdown 명령 또한 제어할 수 있다.
'SpringFramework Core - I. IoC 컨테이너 > 4. 의존성' 카테고리의 다른 글
4.5. 협력자들 Autowiring하기 (0) | 2020.03.18 |
---|---|
4.4. Lazy-initialized Beans (0) | 2020.03.18 |
4.2.12. 복합적인 Property 이름들 (0) | 2020.03.17 |
4.2.11. c-namespace를 사용한 XML Shortcut (0) | 2020.03.17 |
4.2.10. p-namespace를 이용한 XML Shortcut (0) | 2020.03.17 |