Spring框架(二)IOC控制反轉

2021-10-05 17:41:05 字數 2510 閱讀 3795

「現階段裡隨著框架的深入式學習,環境的編寫越來越多,相反程式碼卻逐步縮減」

匯入核心容器的四個jar包外加乙個日誌jar

到了spring這裡嘞,依然躲不過 xml 的對映,相比於mybatis環境的 dtd,spring則是改換成了dtd公升級版的 schma,從而更具擴充套件性。

就像下面的一段xml就是搭建環境的雛形。如果需要引入其他功能,可以在 beans 下新增 xmlns 屬性(即引入xsd檔案)。

<?xml version="1.0" encoding="utf-8"?>

beans 下的 bean 就是對物件的管理,id 屬性是物件的唯一標識,class 則要放入全類名。一般情況 id 都需要寫明,不過有些 bean 不參與引用,可以不寫id

寫到這裡就可以簡單編寫乙個實現類去測試,看能不能拿到乙個people物件

import com.yang.pojo.people;

public class test

}

一、構造方法在 bean 裡可以編寫一些引數用於物件的構造,不過我們需要在類中事先宣告其對應的構造方法。

屬性上有這樣幾個供使用:

index:構造方法裡引數的位置從0開始。    name:類屬性的名字   

value:直譯 值 的意思    ref:引用另乙個類即引用其他 bean

二、例項工廠工廠設計模式:幫助建立類物件,乙個工廠可以生產多個物件。首先你要建造一間生產車間,才能生產物件。而轉觀xml這裡,也需要同步更新,保證對映具體到哪一間工廠裡的哪乙個方法。執行結果不出意外 people [ id=1 name=測試例項工廠 ]

public class peoplefactory 

}/吳迪的分界線/下面是xml工廠對映

三、靜態工廠提到靜態,一般情況下事情處理起來就沒那麼麻煩了。靜態工廠不需要建立工廠,物件張口就來。處理方法可以在 newinstance() 方法新增 static 關鍵字。 xml檔案重新編寫對映,就像這樣。(可以看出沒有建立工廠的bean)

public class peoplefactory 

}//同樣是吳迪的分界線/

所謂設定注入可理解為通過對物件set方法的對映,從而取而代之的過程。這種對映方式可以在xml中 裡編寫實現。實際上就是給類成員賦值額,這一過程如果嘗試在 set 方法裡輸出一句話,程式執行的結果中,可以在控制台看到。

123

4

執行結果:people}

注入依然和設值注入同乙個意思,這裡的依賴的意思是乙個類需要依賴另乙個類,把乙個類賦值給另乙個類的過程就是依賴注入。

這裡為了測試先在 com.yang.pojo 包下建立乙個 cat 類新增屬性 id 和 voice ,生成setter、getter、重寫 tostring() 方法。然後再在原先的people 類中新增cat屬性(private cat cat;)

前面我提到了 property 下的 ref 屬性,在這裡就能用到了。xml對映怎麼寫呢

首先要拿到這個完整的cat物件,放在xml就是編寫乙個管理 cat 物件的 bean,就像這樣

隨後在管理 people 物件的 bean 下 新增 property 去引入這一成員

執行檢視控制台:people, name='yangyang', sets=[1, 2, 3, 4], map=}

(2020.05.12新增)

在spring中的注入中不單只侷限於依賴類的 set() 方法,我們可以通過改變 bean 中的 autowire 屬性來控制使用其他注入方式

byname:通過類和bean的id名字去自動掃瞄完成注入。  

constructor:通過構造器,這裡根據類構造器的傳參名和bean名對應,其實類似byname方式

bytype:根據 bean 的物件型別去匹配完成注入

還有兩個可選項為no和default,字面意思就是

需要注意的是:在spring中自動注入的執行優先等級特別高,使用之前要檢查設計是否有故障

到這裡就可以明顯感受到,幾乎一直在編寫環境,而程式的編寫基本上沒變過,後面會怎麼樣我還不知道,飯要一口一口吃,路要一步一步走。

spring框架 IOC控制反轉

spring的核心機制 ioc,通常被稱為控制反轉,是一種設計思想,對於某個具體的物件而言,以前是它控制其他物件,現在是所有物件都被spring控制,所以這叫控制反轉。ioc的乙個重點是在系統執行中,動態的向某個物件提供它所需要的其他物件。這一點是通過di dependency injection,...

Spring框架學習之IOC 二

spring框架學習之ioc 二 接著昨天的內容,下面開始ioc基於註解裝配相關的內容 在 classpath 中掃瞄元件 特定元件包括 component 基本註解,標識了乙個受 spring 管理的元件 respository 標識持久層元件 service 標識服務層 業務層 元件 contr...

spring框架Ioc學習

理解 1 在ioc沒有出現之前,如果物件a需要依賴物件b,那麼在a初始化或執行到某乙個點的時候,需要去建立或者呼叫已經建立的物件b.不管是建立還是直接呼叫,控制權都在自己手裡.2 ioc出現之後,如果物件a需要依賴物件b,這是會有乙個容器來管理這種需求,將物件b注入到物件a中,這樣乙個容器我們稱之為...