spring配置如下:
class:指定為工廠類型
factory-method="":告訴Spring這個工廠的工廠方法;
Spring會調用工廠方法,把傳回的結果放在容器中;容器中其實儲存的是Book
1)、必須得有這個工廠對象
2)、我們建立bean的時候使用這個工廠
例如:
spring配置檔案如下:
告訴Spring建立book對象的時候使用哪個工廠對象
factory-bean="instanceBookFactory":指定工廠對象
factory-method="getBook":指定工廠方法
配置檔案如下:
Spring定義的一個工廠接口;實作這個接口;實作了這個接口的所有類,Spring就認為這是一個工廠類 容器中儲存的是getObject方法傳回的對象
通過abstract屬性建立一個模闆bean:abstract="true":這是一個抽象定義,隻是讓别人繼承的。
parent="person01":隻是指配置的繼承。
改變建立順序
depends-on="person02":依賴的bean優先建立
scope="":作用域;
prototype:原型,多執行個體;
singleton:單執行個體(預設)
web環境有用的
request:同一次請求建立一次對象
session:同一個會話建立一個對象
單執行個體:
1、預設注冊的bean都是單執行個體的
2、容器一啟動就會建立這些單執行個體bean
多執行個體:
1、容器啟動不會建立這些bean
生命周期:(從建立到銷毀的過程);
Spring幫我們建立對象====銷毀:
Spring允許我們為bean自定義聲明周期方法,在具體生命周期的時候會自動調用
init-method="":指定初始化方法;
destroy-method="":指定銷毀方法;
調用:
容器啟動(調用構造器)===init=====xxxx====容器關閉銷毀;
多執行個體:(銷毀方法不會被調用)
每次擷取(調用構造器)===init====xxx====容器關閉;
配置 調用對應的初始化和銷毀方法:
作用:攔截bean的初始化過程在初始化前後做一些工作;
使用:
1、寫實作
2、注冊在容器中
配置檔案内容如下:
Spring認為每一個元件是有預設初始化方法的,隻是我們可
能沒定義
1、每個bean建立初始化後置處理器都會工作
2、我們可以在後置處理器中對初始化前後的bean進行檢查修改。。。