Spring (1)
阿新 • • 發佈:2017-09-26
true 構造器註入 依賴關系 prop 松耦合 並且 問題 程序 統一管理
Spring 的依賴註入
依賴: 如果在 Class A 中,有 Class B 的實例,則稱 Class A 對 Class B 有一個依賴。
所謂依賴註入,是指程序運行過程中,如果需要調用另一個對象協助時,無須在代碼中創建被調用者,而是依賴於外部的註入。Spring的依賴註入對調用者和被調用者幾乎沒有任何要求,完全支持對POJO之間依賴關系的管理。
ioc,及控制反轉,它是程序組件或類之間盡量形成一種松耦合的結構,開發者在使用類的實例之前,需要先創建對象的實例,但是IOC將創建實例的任務交給IOC容器,這樣開發應用代碼是只需要直接實用類的實例。
平常的Java開發中,程序員在某個類中需要依賴其它類的方法。
通常是new一個依賴類再調用類實例的方法,這種開發存在的問題是new的類實例不好統一管理。
Spring提出了依賴註入的思想,即依賴類不由程序員實例化,而是通過Spring容器幫我們new指定實例並且將實例註入到需要該對象的類中。
依賴註入的另一種說法是"控制反轉"。通俗的理解是:平常我們new一個實例,這個實例的控制權是我們程序員。
而控制反轉是指new實例工作不由我們程序員來做而是交給Spring容器來做。
Spring支持兩種依賴註入方式 setter註入和 構造器註入。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- <bean id="car1" class="model.Car"> <property name="carname" value="aodi"></property>//setter 註入 <property name="price" value="35555"></property> </bean> --> <bean id="car2" class="model.Car">//構造器註入 <constructor-arg index="0"> <value>baoma</value> </constructor-arg> <constructor-arg index="1"> <value>3400000</value> </constructor-arg> </bean> </beans>
Spring (1)