Spring學習01 IOC容器(簡介,注入)

2021-07-25 08:23:01 字數 2160 閱讀 2569

1、ioc

ioc(控制反轉):本來應該有應用程式管理的物件之間的依賴關係,現在交給容器管理,這就是控制反轉的定義,即交給了ioc容器。

spring的ioc主要是依賴於di(注入)實現的,不需要應用程式去主動查詢,物件的查詢、定位、建立都交由容器管理。

2、spring的優勢

1)大量減少了factory和singleton(工廠和單例),使得**的層次更加清晰,原因就是我們不需要主動查詢、定位、建立物件和管理物件之間的依賴關係,這些已經都交給容器進行管理了。

2)spring的ioc容器是乙個輕量級的容器,沒有侵入性,意思就是不需要實現或者繼承任何ioc的介面,不依賴容器的api。

3)**的解耦,將耦合推遲到了配置檔案當中,即使需要變化也非常容易控制。

id="userdaoimpl"

class="com.errol.dao.userdaoimpl">

bean>

id="usermanagerimpl"

class="com.errol.manager.usermanagerimpl">

name="userdao"

ref="userdaoimpl">

property>

bean>

5)加入junit測試包,編寫乙個測試函式,測試ioc容器,檢視是否通過ioc容器獲取到我們的物件。

public

class

client

}

6)在測試函式中右鍵run–>juint,檢視輸出結果。

4、常用的屬性注入

直接看**

id="tradeacco"

class="com.errol.dao.tradeacco">

name="vc_tradeacco">

0001value>

property>

name="vc_fundacco">

980001value>

property>

name="en_balance"

value="1000000">

property>

name="en_share"

value="888888">

property>

name="ls_manager">

s01value>

s02value>

s03value>

s04value>

list>

property>

name="st_fundcurrent">

s01123412value>

s02231412value>

s035767value>

s04213747value>

set>

property>

name="mp_sharedetail">

key="150001"

value="1000">

entry>

key="250001"

value="2000">

entry>

key="350001"

value="3000">

entry>

map>

property>

name="prop">

key="1">

prop>

props>

property>

name="vc_date"

value="2016/12/13">

property>

bean>

看上面的**可以值到,一些常用的屬性,string int double之類的注入值的時候,可以直接在 這樣的方式注入,也可以在property標籤內部加乙個value標籤。

還有一點,看int和double型別的屬性,注入的值都是字串型別或者對應的型別值,這是由於spring在注入物件屬性時,會對注入值進行編輯,呼叫屬性編輯器,內部就是乙個map,裡面裝有各種型別的編輯方式,比如,注入乙個int型別的屬性時,value=」123」,當呼叫屬性編輯器時,自動將string型別的值轉成了int型別,實現注入。

由上面可以得知,屬性編輯器存放在乙個map當中,我們是否可以自定義乙個屬性編輯器呢?下回分解。

Spring學習 IOC容器 xml

1.xml檔案配置 2.註解 commons logging 1.2 bin spring framework 4.3.0.release dist匯入到專案 建立乙個類,用來完成對spring配置檔案的載入和銷毀 所有的單元測試類都必須繼承自上類,並且都必須加註解 runwith blockjun...

spring學習之IoC容器

jinnianshilongnian 寫道 理解ioc容器問題關鍵 控制的哪些方面被反轉了?1 誰控制誰?為什麼叫反轉?ioc容器控制,而以前是應用程式控制,所以叫反轉 2 控制什麼?控制應用程式所需要的資源 物件 檔案 3 為什麼控制?解耦元件之間的關係 4 控制的哪些方面被反轉了?程式的控制權發...

Spring元件和IOC容器

主要完成三個功能,在spring中好比乙個演員的角色 1 bean的建立 由beanfactory完成 2 bean的定義 由beandefinition完成 3 bean的解析 由beandefinitionreader完成 該元件提供了spring的基本執行環境,在spring中好比乙個舞台的角...