spring專題 第一部分IOC 一)

2021-10-02 08:22:44 字數 2654 閱讀 6452

ioc簡單介紹

ioc被稱作控制反轉,也被稱為依賴注入(di)。是spring中重要的一部分,它是spring框架的重要組成之一,我們可以將ioc比作乙個容器,而它的作用就是幫助我們new 物件,管理物件的。

控制反轉理解

那麼我將自己對控制反轉的理解簡單說一下,控制反轉其實是spring中的一種機制,我們之前是怎麼建立物件的?簡單來說就是自己手動去new,當我們想對該物件進行一些屬性的操作呢?我們就會通過建構函式,屬性呼叫對其賦值,而ioc會怎麼來幫助我們建立物件呢?首先分為兩種,一種是無參建立,還有一種是有參建立,無參建立我們可以理解為無參建構函式建立物件,不對其進行任何屬性賦值,有參便是通過有參建構函式建立物件,將對其屬性進行一些賦值。

簡單用圖說明一下控制反**

傳統方式:

建立物件----->對物件進行一些屬性賦值

spring ioc:

要對物件賦的值---->給ioc容器----->ioc容器依據屬性建立物件(注意ioc建立物件也是利用建構函式,因此需要建立的物件的類必須有建構函式)

如此我們可以體會到控制反轉的精妙之處,這也是spring框架的一大特色。

建立物件的方式

建立物件有多種方式,這裡我只介紹兩種,一種是傳統方式建立,當然傳統方式裡也有多種,我只介紹最簡單的一種,通過建構函式建立,僅僅是用來區別spring ioc容器建立。

傳統方式建立:

(1)建立student類

public

static student

這裡自行實現setter,getter,tostring方法。

(2)測試方法呼叫建構函式建立物件

student student=

newstudent()

;

ioc容器建立物件實現步驟:(1)在pom.xml中新增spring依賴

>

>

>org.springframework>

>spring-context>

>$

>

>

>

>org.springframework>

>spring-beans>

>$

>

>

>

(2)建立配置檔案,可以自定義檔名,比如spring.xml

(3)在spring.xml中配置bean標籤,ioc容器通重載入bean標籤來建立物件

(4)呼叫api獲取ioc建立的物件

ioc容器建立物件同樣有兩種,無參構造和有參構造,無參和有參構造我在上邊已經解釋了,不理解的同學可以再往上看一看。

ioc容器通過無參構造方式建立物件

>

接下來我們通過呼叫api來獲取物件,spring提供了兩種方式來獲取物件,一種是id,一種執行時類通過id獲取物件

public

class

}

這裡注意需要導包。

執行結果:

通過上圖我們可以看到,通過無參構造方式建立的物件屬性值都是0或null,這也證明了一點ioc確實是通過建構函式來建立物件的,那麼我們讓其屬性具有一些值呢?這裡我們需要在bean標籤中新增property屬性,我們可以理解為傳統方式的屬性呼叫。下面我們舉例說明以下:

>

>

>

>

>

執行結果:

我們可以看到,id和name均已有值,而age還是無值狀態。

ioc容器通過有參構造方式建立物件

(1)在實體類中建立有參構造

public

class

student

(2)在spring.xml中進行配置

>

-arg name="id" value="3">

-arg>

-arg name="name" value="jacob">

-arg>

-arg name="age" value="18">

-arg>

>

對ssm框架感興趣的童鞋,可以移步這裡,在這裡你可以快速的搭建好乙個ssm框架。

Axure RP 第一部分

axure rp是乙個專業的快速原型設計工具。axure 發音 ack sure 代表美國axure公司 rp則是rapid prototyping 快速原型 的縮寫。axure rp是美國axure software solution公司旗艦產品,是乙個專業的快速原型設計工具,讓負責定義需求和規格...

第一部分 初識Solr

第一章 solr簡介 這章主要包括內容 這本書講述nosql技術,apache solr 像它的非關係模式兄弟一樣,針對於某些問題進行了優化。特別的,solr在處理企業級大量資料 及時搜尋 文字資料 返回相關性結果等方面進行了很大優化。這裡說的只是冰山一角,讓我們從下面幾方面來進行詳細敘說 solr...

css排雷第一部分

import url basic.css warning urgent plant moons plant moons 1 a href span title feature lang en 選出屬性等於lang或者以lang開頭的所有元素。選擇h1 strong 可以解釋為選擇h1字元素中的所有s...