spring核心的是ioc(控制反轉),後來也叫作di(依賴注入),英文全稱是:invertion of control ; dependency inserting
spring大都是依賴於核心檔案配置,體現它的核心思想,將物件生成的控制權交給容器,實現松耦合。並且它提倡介面程式設計。可以盡量的減少在以後維護中**的改動。
說下bean的配置:
id屬性:表示生成的物件的名字。
class屬性:反射技術中要知道類的全名才能構造出物件。
scope屬性:表示這個bean的範圍,在記憶體中只有乙個;singleton;在記憶體中有多個:prototype;還有reuest,session,這些是專門在web專案中表示範圍的。
接著是子標籤:property
name:對應類中set***方法,與set後面的名字相同。
value:在string與基本資料型別中,用value寫出值。
ref:屬性值是引用型別,則用其表示,值為,配置好的乙個bean
接著說下bean的生命週期:
1.例項化,寫好的xml檔案當檔案被載入時,例項被建立,有乙個前提,它是singleton狀態,如果不是則無需提前載入,這裡也比較好理解,建立時預設為空引數構造方法,如果想呼叫自己有引數的構造方法,可以在bean裡面配置裡面的index屬性表示構造函式引數的索引,type屬性表示引數型別,要寫包名.類名。
value寫值,或者rref寫引用型別的值
2.設定屬性,既執行property標籤裡面的設定。
3.如果bean指向的這個類實現了beannameaware介面,則會呼叫這個實現類的setbeanname方法。將這個bean的id屬性值傳入函式中,我們可以對其進行操作。
4.若實現了beanfactoryaware,則可以通過函式得到beanfactory物件。
6.如果這個檔案中有乙個實現了beanpostprocessor介面的物件。就會呼叫它相應的方法。
7.這個bean實現了initialingbean介面,呼叫相應方法。
8.如果在xml中bean中屬性配置init-method屬性值,則呼叫相應函式。
9.呼叫實現beanpostprocessor中的after方法。
10.bean建立完成。
11.容易關閉,若在bean屬性裡面有destory-method方法,則呼叫。
init-method以及destory-method可以使用註解技術來完成,不過還是建議在配置檔案中寫,減少**的修改量。
說完了如何給bean注入基本資料型別屬性和引用型別屬性,那麼集合以及陣列這種如何注入?
陣列和list集合
ccc
ccc
set集合:
將list換成set即可
map集合:
注入null:
自動裝配:
我們配置bean,有時候某些屬性沒有配置,但bean裡面有唯一符合條件的bean是我們這個屬性想要對應的,那麼我們可以用自動裝配(一般不用)
bean裡面的autowire屬性:
no:不自動裝配;
byname:根據名字進行裝配,按照本類中的那個參照名,去尋找bean,如果配置的bean與類中的那個對應名字一樣,則完成自動配置。
butype:根據為賦值的屬性了型別去配
constructor:通過建構函式設定值,即我們有有參建構函式,發現建構函式中的引數名字相同的,就進行賦值;
autodetect:在constructor和bytype之間滿足乙個即可;
default:在beans(不是bean)屬性中,有乙個default-autowire屬性,初始不設定時,它代表no,default預設表示的是這個default-autowire屬性值。
分散配置:
這是利用spring內建的類來實現的,就是org.springframework.beans.factory.config.propertyplaceholderconfigurer
一般用於讀入properties檔案內容,這樣在這個配置檔案中想使用到配置檔案的一些東西就可以$類似這樣了。
Spring框架學習
技術人員每到乙個階段就會遇到乙個天花板,這表明你在這個階段已經積累足夠,需要突破了,如果技術人員發現自己從來沒有天花板,這說明你從來不懂的去反思去沉澱,去優化你的知識儲備。因為不同階段的技術儲備,在眾多職業道路上,可能造就一種從基本研發人員到職業架構師的轉變的職業道路,這可以說是從技術演變上的職業發...
python學習之 階段小結
學了一段時間的python總結一下強化記憶 我學習python,主要是通過看別人的部落格,在網上找各種資料對照,自己練習,做下小結 推薦python快速學習部落格 菜鳥吧 序列 list,tuple tuple元素不可變,list元素可變 序列的引用 s 2 s 1 8 2 字串是一種tuple 運...
kafka階段學習小結(面試)
主要是借鑑這篇文章的一些問題,做乙個小總結,每回看到這些題都要好好思考一下。其他一些問題 請說明什麼是apache kafka?說說kafka的使用場景?使用kafka有什麼優點和缺點?使用kafka效能很好,體現在 請說明什麼是傳統的訊息傳遞方式?請說明kafka相對傳統技術有什麼優勢?解釋kaf...