文章目錄
- XML提示配置
- bean的相關配置
-
- 标簽的id和name 的配置
- bean的生命周期的配置(了解)
- bean的作用範圍的配置(重點)
- Spring的屬性注入
-
- 屬性注入的方式
- 構造方法方式的屬性注入
- set方法的方式的屬性注入
- set方法注入對象類型的屬性![在這裡插入圖檔描述](https://img-blog.csdnimg.cn/20190811162508447.png)
- P名稱空間的屬性注入方式(Spring2.5以後)
- SpEL的屬性注入(Spring3.0以後的版本)
- 數組、集合屬性的注入
- Spring的分子產品開發
XML提示配置
為eclipse添加Schema的提示配置
配置步驟如下
(1)複制配Schema位址
(如果沒有配置檔案,可以自己敲或者到Spring的解壓目錄下的spring-framework-5.1.9.RELEASE/docs/spring-framework-reference/core.html#spring-core查找)
(2)添加xml使用者指定條目
(3)添加Schema路徑、本地檔案路徑
注意:橙色框框内的Schame location在完成添加路徑和位址時eclipse才會有該選項供給使用者選擇
bean的相關配置
标簽的id和name 的配置
(1)id:使用了月生杜仲的唯一限制,裡面不能出現特殊字元
(2)name:沒有使用限制中的唯一限制(理論上可以出現重複,但是在實際的開發過程中不允許出現重複)
兩者的聯系和差別
在一般的使用情況下可以認為兩者是一樣的實作的是一樣的功能,但是在如果配置檔案的id必須是含有特殊字元的情況下進行定義這就需要切換至name來使用了
bean的生命周期的配置(了解)
步驟:
(1)首先在需要進行執行個體化的類中定義初始化方法以及銷毀調用的方法
(不需要是接口中的方法,隻需要是接口實作類的特有屬性即可)
(2)在配置檔案中配置初始化調用方法
(3)初始化調用方法會在對象被建立的時候進行調用,銷毀方法在對象在銷毀的時候被調用,如将類工廠關閉
bean的作用範圍的配置(重點)
scope屬性進行配置Bean的作用範圍
scope有以下的幾個數值
(1)singleton :預設的,Spring會采用單例模式建立這個對象
(2)prototype:多例模式(Struts2和Spring整合一定會用到)
(3)request: 應用在web項目中,Spring建立這個類以後就會将它存入到request範圍中
(4)session:應用在web項目中,Spring建立這個類以後就會将它存入到session範圍中
(5)globalsession:應用在web項目,必須在prolet環境下使用,如果沒有這種環境,但是又将其配置為了這個屬性,時候相當于session。
注意:
(1)prolet環境指的是在一個網站有多個頁面的情況下,一次配置,全局頁面共享。如在淘寶頁面登入了賬号,在浏覽商品的各個頁面上都顯示已登入資訊
(2)在實際的開發中主要使用的是第一第二個屬性進行配置
執行個體
(1)在預設的情況下,即不進行配置的情況下。建立的對象是單例的。這時候不管擷取對象多少次都是同一個對象,如下圖所示,兩次擷取的對象的位址是相同的,對象隻被初始化一次
(2)将對象配置為多例模式的
1)将配置檔案中對scope的屬性修改為prototype
2)在對上面的擷取兩次對象代碼進行運作,初始化了兩次,同時位址也是不一樣的。
注意:這時候工廠雖然關閉了,但是對象并沒有銷毀,原因是工廠不知道對哪一個對象進行銷毀
Spring的屬性注入
屬性注入的方式
在java的開發中,有下圖的幾種方式實作對象的屬性注入,其中Spring支援構造方法和set方法兩種方式進行屬性注入。
構造方法方式的屬性注入
(1)定義一個類,并使用構造方法的方式對屬性進行設定,如下圖
(2)在對應的标簽中添加 進行對屬性的注入
set方法的方式的屬性注入
(1)定義一個類,并使用set方法的方式對屬性進行注入
(2)在配置檔案中對應的标簽中添加标簽對屬性進行注入
set方法注入對象類型的屬性
(1)定義一個類,這個類的中存在一個對象屬性,同時該對象由set方法的方式獲得
(2)在配置檔案中找到對應的标簽,并添加進行對屬性注入。但是因為注入的是對象屬性,是以隻能是使用ref的方式指向配置的對象id,如下圖所示
注意:使用構造方法設定對象屬性也是類似的方法,把value改成ref即可
P名稱空間的屬性注入方式(Spring2.5以後)
介紹:通過引入p名稱空間完成屬性的注入
文法:
(1)普通屬性 p:屬性名=“值”
(2)對象屬性 p:屬性名-ref=“值”
執行個體
(1)打開配置檔案并添加P名稱空間
(2)修改配置檔案将注入屬性的方法寫為p名稱空間的方式
1)普通屬性注入
2)對象屬性注入
SpEL的屬性注入(Spring3.0以後的版本)
介紹:Spring Expression Language,Spring 的表達式語言
文法:
(1)#{SpEL}
執行個體
(1)在配置檔案中将普通屬性進行注入操作
(2)對象屬性注入
(3)對象屬性和對象方法的調用
被調用的對象必須在配置檔案中已經進行了注冊
注意:以上方法是最基本的使用方法,SpEL屬性的注入中可以引入複雜的算式進行計算注入。
數組、集合屬性的注入
數組屬性注入
(1)定義一個類中的數組屬性,并通過set方法将屬性注入
(2)配置檔案向數組注入多條資料
集合屬性注入
一、向list集合注入屬性
(1)類中添加集合定義,并通過使用set方法實作屬性注入
(2)配置檔案向list集合添加多條資料
二、向Map集合注入
注意配置檔案中注入屬性的方式
Spring的分子產品開發
Spring的分子產品開發,這時候會出現多個配置檔案,當出現多個配置檔案時如何關聯多個配置檔案?
方法一
類工廠的建立時,加載多個配置檔案
方法二
在配置檔案中關聯引入其他的配置檔案