天天用 Spring,bean 例項化原理你懂嗎

2021-10-24 09:51:43 字數 991 閱讀 7350

本次主要想寫spring bean的例項化相關的內容。建立spring bean 例項是spring bean 生命週期的第一階段。

bean 的生命週期主要有如下幾個步驟:

在例項化bean之前在beandefinition裡頭已經有了所有需要例項化時用到的元資料,接下來spring 只需要選擇合適的例項化方法以及策略即可。例項化方法有兩大類分別是工廠方法和構造方法例項化,後者是最常見的。

spring預設的例項化方法就是無參建構函式例項化。

如我們在xml裡定義的 以及用註解標識的bean都是通過預設例項化方法例項化的。

使用適當的例項化方法為指定的bean建立新例項:工廠方法,建構函式例項化。

**演示

啟動容器時會例項化所有註冊的bean(lazy-init懶載入的bean除外),對於所有單例非懶載入的bean來說當從容器裡獲取

bean(getbean(string name))的時候不會觸發,例項化階段,而是直接從快取獲取已準備好的bean,而生成bean的時機則是下面這行**執行時觸發的。

@test

public void testbeaninstance()

一 使用工廠方法例項化(很少用)

1.靜態工廠方法

public class factoryinstance 

}public class mybeanfactory 

}

<?xml version="1.0" encoding="utf-8"?>
輸出結果為:

instance by factoryinstance

2.例項工廠方法

public class mybeanfactory 

}

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

SPRING BEAN的例項化

3.2.3.2.2.使用靜態工廠方法例項化 當採用靜態工廠方法建立bean時,除了需要指定class屬性外,還需要通過factory method屬性來指定建立bean例項的工廠方法。spring將呼叫此方法 其可選引數接下來介紹 返回例項物件,就此而言,跟通過普通構造器建立類例項沒什麼兩樣。下面的...

Spring Bean作用域例項

在spring中,bean作用域用於確定哪種型別的 bean 例項應該從spring容器中返回給呼叫者。bean支援的5種範圍域 單例 每個spring ioc 容器返回乙個bean例項 原型 當每次請求時返回乙個新的bean例項 請求 返回每個http請求的乙個bean例項 會話 返回每個http...

Spring Bean的例項化

在物件導向的程式中,要想呼叫某個類的成員方法,就需要先例項化該類的物件。在spring中,例項化 bean 有三種方式,分別是構造器例項化 靜態工廠方式例項化和例項工廠方式例項化。本節將針對這三種方式分別進行講解。構造器例項化是指 spring 容器通過 bean 對應的類中預設的建構函式例項化 b...