天天看點

Spring -- 配置bean

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進行檢查修改。。。