depends-on是bean標簽的屬性之一,表示一個bean對其他bean的依賴關系。乍一想,不是有ref嗎?其實還是有區別的,<ref/>標簽是一個bean對其他bean的引用,而depends-on屬性只是表明依賴關系(不一定會引用),這個依賴關系決定了被依賴的bean必定會在依賴bean之前被實例化,反過來,容器關閉時,依賴bean會在被依賴的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" />
manager和accoutDao會先於beanOne被實例化,會慢於beanOne被銷毀,而beanOne不引用accountDao(或者說beanOne不會將accountDao注入到自己的屬性中)。這就是depends-on的主要作用。