關於spring的概述與簡單示例1

在idea種構建簡單的spring項目,默認會下載所許jar

關於spring的概述與簡單示例1

然後創建測試用的service層與dao層,做了一個簡單的實現接口中打印方法

關於spring的概述與簡單示例1

關於spring的概述與簡單示例1

在src目錄下創建bean.xml

關於spring的概述與簡單示例1

創建一個測試類,輸出spring創建的對象

關於spring的概述與簡單示例1

打印結果如下:

關於spring的概述與簡單示例1

關於bean創建的兩種規則

beanFactory 提供一種延遲加載的思想來創建bean對象,bean什麼時候使用就什麼時候創建

applicationContext 只要文件解析完,則立馬創建bean對象

示例:

給實現添加構造方法,創建對象則輸出一句話

關於spring的概述與簡單示例1

運行測試代碼,applicationContext創建bean的方式

關於spring的概述與簡單示例1

使用beanFatory創建bean對象,debug發現加載完消滅了文件後並沒有創建bean對象

關於spring的概述與簡單示例1

當使用該bean時,才調用

關於spring的概述與簡單示例1

bean創建的三種方式

1.調用默認的構造方法創建,如果沒有則創建失敗

關於spring的概述與簡單示例1

關於spring的概述與簡單示例1

2.使用工廠中的方法創建對象

關於spring的概述與簡單示例1

關於spring的概述與簡單示例1

創建成功

關於spring的概述與簡單示例1

3.使用實例工廠創建bean對象

關於spring的概述與簡單示例1

關於spring的概述與簡單示例1

測試成功

關於spring的概述與簡單示例1

bean的作用範圍:

可以通過配置的方式調整作用範圍 ,配置的屬性,bean的scope標籤

屬性的取值

singleton 單例(默認)

prototype 多例(spring接管struts2的時候,需要配置此值)

request (一次請求和轉發)

session (一次會話)

globalsession (一次全局會話 服務器集群使用)

示例:

單例

關於spring的概述與簡單示例1

多例:

關於spring的概述與簡單示例1

bean的生命週期

單例bean生命週期:

關於spring的概述與簡單示例1

關於spring的概述與簡單示例1

測試:(注意多態概念)

關於spring的概述與簡單示例1

所以單例中bean對象隨著容器的創建,存在,銷燬而相應的變化

多例:

關於spring的概述與簡單示例1

關於spring的概述與簡單示例1

沒有實施銷燬方法,只有等待垃圾回收機制的觸發

關於bean注入DI

關於spring的概述與簡單示例1

構造函數注入

關於spring的概述與簡單示例1

關於spring的概述與簡單示例1

測試:

關於spring的概述與簡單示例1

set方法注入

關於spring的概述與簡單示例1

關於spring的概述與簡單示例1

測試:

關於spring的概述與簡單示例1

註解分為以下幾種:

1.用於創建bean對象 @Component 相當於bean.xml中的bean標籤

關於spring的概述與簡單示例1

xml文件配置

關於spring的概述與簡單示例1

由此註解衍生以下三個註解(繼承關係,引用父類Component的功能)只是表現形式不一樣,沒有其他任何區別

關於spring的概述與簡單示例1

2.用於注入數據(bean對象)

關於spring的概述與簡單示例1

關於spring的概述與簡單示例1

需要注意的時Autowrid不加@Qualifier時 註解的對象只能存在唯一的,而不是存在多個ICustomerDaoImpl 或者使用Resource指定bean的ID

關於spring的概述與簡單示例1

注入基本數據類型

關於spring的概述與簡單示例1

控制bean的作用範圍

控制bean的生命週期

關於spring的概述與簡單示例1

其他註解


分享到:


相關文章: