Spring中Bean的初始函式和消亡函式

2021-10-24 11:16:18 字數 2202 閱讀 4834

package com.homework.bean;

import org.springframework.beans.factory.*;

public

class

itemorder

implements

iitemorder

,initializingbean

}

package com.homework.bean;

public

class

itemorder

implements

iitemorder

}

在xml檔案中新增init-method:

"itemorder1"

class

="com.homework.bean.itemorder"

init-method

="init"

>

name

="numitems"

>

>

1value

>

property

>

name

="item"

>

bean

="item1"

/>

property

>

bean

>

工程啟動後就直接執行afterpropertiesset,spring總是先處理bean定義的initializingbean,後處理init-method。如果在spirng處理initializingbean時出錯,那麼spring將直接丟擲異常,不會再繼續處理init-method。

如果乙個bean被定義為非單例的,那麼afterpropertiesset和init-method在bean的每乙個例項被建立時都會執行。單例 bean的afterpropertiesset和init-method只在bean第一次被例項時呼叫一次。

struts2的action是多例項的,也即每次請求產生乙個action的物件。action類中往往包含了資料屬性,例如在頁面填寫的form表單的字段,action中有對應的的屬性來繫結頁面form表單字段。

springmvc預設是單例的。與action不同,springmvc的controller中不定義屬性,而是用方法的引數接收值,乙個方法結束形參就銷毀了,多執行緒訪問都會有一塊記憶體空間產生,裡面的引數也是不會共用的。

另:init-method是通過反射執行的,而afterpropertiesset是直接執行的。所以 afterpropertiesset的執行效率比init-method要高,不過init-method消除了bean對spring依賴。

package com.homework.bean;

import org.springframework.beans.factory.*;

public

class

itemorder

implements

iitemorder

,disposablebean

}

package com.homework.bean;

public

class

itemorder

implements

iitemorder

}

在xml檔案中新增destroy-method

"itemorder1"

class

="com.homework.bean.itemorder"

destroy-method

="mydestroy"

>

name

="numitems"

>

>

1value

>

property

>

name

="item"

>

bean

="item1"

/>

property

>

bean

>

Spring中Bean的初始化流程

spring中經典的9種設計模式 mybatis執行流程 通常乙個 xml 對映檔案,都會寫乙個 dao 介面與之對應,請問,這個 dao 介面的工作原理是什麼?dao 介面裡的方法,引數不同時,方法能過載嗎?id是否可以相同 spring bean 的初始化主要實現在bean.factory包下的...

Spring中的Bean的掃瞄 例項化 初始化

在spring啟動之後,個人暫時將spring注入bean物件的過程分為3個大的步驟,分別是 bean的掃瞄 bean的例項化 bean的初始化。第一步 bean的掃瞄 配置類掃瞄 配置檔案xml掃瞄 直接包路徑掃瞄 import org.springframework.context.annota...

Spring初始化Bean方法

一 總結 1 spring為bean初始化提供了兩種方式 2 實現initializingbean介面是直接呼叫afterpropertiesset方法,比通過反射呼叫init method指定的方法效率相對來說要高點。但是init method方式消除了對spring的依賴 3 如果呼叫after...