五分鐘學會Spring的IOC與DI

2021-08-20 03:22:57 字數 2399 閱讀 5308

前言:如果要快速理解僅需看貼上去的兩個**示例別的不用看,如果要繼續擴充知識看下知識擴充。每個擴充都有原始碼!每個擴充都有原始碼!!每個擴充都有原始碼!!!

#spring的ioc

##ioc簡單講解

ioc—inversion of control,即「控制反轉」。通常程式設計師建立乙個物件需要自己手動去new乙個,既控制正轉。現在交給spring的ioc容器去管理,讓他幫你去new,既控制反轉。

##ioc快速入門案例

###實體類

package com.test;

public class helloworld

}

###xml配置

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

###測試類

package com.test;

import org.junit.test;

public class helloworldtest

}

(2)例項工廠方法(3)靜態工廠方法####ioc建立物件的時間

(1)預設啟動spring容器的時候建立

(2)當設定lazy-init="true"的時候,呼叫的時候建立

####ioc建立物件的範圍

(1)預設狀態下為單例,既建立物件這個類的屬性是全域性的

(2)設定scope="prototype"的時候,是多例的,而且 無論lazy-init是值,都是在獲取bean的時候才建立物件

####ioc建立物件時的初始化與銷毀方法

(1)初始化方法init-method,載入spring容器的時候呼叫初始化方法,進行初始化。

(2)銷毀方法destroy-method,spring容器關閉的時候進行呼叫銷毀方法,進行銷毀。

####物件的別名alias

(1)通過使用alias="***"可將乙個bean起多個別名

#spring的di

##di簡單講解

di—dependency injection,即「依賴注入」。依賴:應用程式依賴spring的ioc容器,注入:ioc容器注入某物件賦值。簡單的可以理解為,給類的屬性賦值。有了spring的ioc容器,我們不用自己在程式中手動去賦值,可以交給spring的ioc容器去賦值,這樣我們無須知道怎麼賦值,賦的什麼值,可以將注意力集中在業務邏輯中。

##di快速入門案例

###實體類

package com.test;

public class person

###xml配置

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

###測試類

package com.test;

import org.junit.test;

public class dtxmltest

}

###執行結果

###例子簡介

從例子中可以看出,我們在應用程式中並沒有對屬性賦值,直接就能得到類的值。應為spring容器在載入的時候已經對類的屬性進行了賦值,類的屬性可以是類,可以是集合,陣列等。這就是依賴注入,也就是給屬性賦值。

###di知識擴充

####依賴注入的方式

(1)通過set方法注入,既上面的小例子。

(2)通過構造器注入。

(3)父類與子類之間的賦值。

#進一步補充(可忽略)

##spring的ioc與di註解形式

(1)di的註解形式。

(2)ioc與di的註解形式。

(1)(2)的例子可能讓您對annotation-config 與

component-scan區別產生疑問,如有疑問參考部落格:

(3)ioc與di簡單的mvc(加深理解)。

專案原始碼:

參考部落格:

教你五分鐘學會快速排序

20為選定的關鍵字 轉換為二叉樹表示 即快排是加了關鍵字交換的二叉樹遍歷 想想快排的兄弟歸併排序,二者都是遍歷二叉樹.pub fn quicksort arr mut t where t std cmp partialord fn quick sorted arr mut t a usize,b u...

五分鐘學會markdown基本語法

在想要設定為標題的文字前面加 來表示,乙個 是一級標題,二個 是二級標題,以此類推。支援六級標題。示例 標題h1 標題h2 標題h3 標題h4 標題h5 標題h5 效果如下 標題h4 標題h5 標題h5 例項 刪除線 刪除線 開啟識別html標籤時 斜體字 斜體字 粗體 粗體 粗斜體 粗斜體 上標 ...

五分鐘學會Docker搭建Redis主從集群

在正式專案的時候,搭建redis集群通常需要使用配置檔案,這樣能保證redis的可定製性。現在的網上的教程都較為簡易,沒有給redis設定安全密碼,配置檔案也很簡陋,於是寫這篇部落格作為記錄。我在搭建redis集群的時候遇到了如下問題,docker容器啟動時,redis從機不能連線上redis主機,...