Spring 依賴注入 DI

AngeliaZheng發表於2018-09-13

在Spring框架中,依賴注入(DI)的設計模式是用來定義物件彼此間的依賴。它主要有兩種型別:
    Setter方法注入
    構造器注入

1. Setter方法注入

Setter方法注入是最流行最簡單的DI注入方法,通過設定方法注入依賴。

<bean id="articleService" class="com.angelia.spring.service.ArticleServiceImpl" >
	<property name="articleDao">
		<ref bean="articleDao" />
	</property>
</bean>

2.建構函式注入

此DI方法將通過建構函式注入依賴。

<bean id="articleService" class="com.angelia.spring.service.ArticleServiceImpl" >
	<constructor-arg>
		<ref bean="articleDao" />
	</constructor-arg>
</bean>

在Spring框架中,當一個類包含多個建構函式帶的引數相同,它總是會造成建構函式注入引數型別歧義的問題。然而,由於setter方法注入簡單,因此大部分場景選擇使用setter注入。

3. Spring內部bean

在Spring框架中,一個bean僅用於一個特定的屬性,這是提醒其宣告為一個內部bean。內部bean支援setter注入“property”和構造器注入"constructor-arg“。

<bean id="articleService" class="com.angelia.spring.service.ArticleServiceImpl">
        <property name="articleDao">
		<bean class="com.angelia.spring.dao.ArticleDaoImpl">
			<property name="dataSource" ref="dataSource" />
		</bean>
	</property>
</bean>
---------------------------------------------------------------------------------
<bean id="articleService" class="com.angelia.spring.service.ArticleServiceImpl">
	<constructor-arg>
		<bean class="com.angelia.spring.dao.ArticleDaoImpl">
			<property name="dataSource" ref="dataSource" />
		</bean>
	</constructor-arg>
</bean>

相關文章