bean生命週期:
(1)使用預設構造方法或指定構造引數進行bean例項化。
(2)根據property標籤的配置呼叫bean例項中的相關set方法完成屬性的賦值。
(3)如果bean實現了beannameaware介面,則呼叫setbeanname()方法傳入當前bean的id。
(4)如果bean實現了beanfactoryaware介面,則呼叫setbeanfactory()方法傳入當前工廠例項的引用。
(6)如果有beanpostprocessor與當前bean關聯,則與之關聯的物件的postprocess- beforeinitialzation()方法將被呼叫。
(7)如果在配置檔案中配置bean時設定了init-method屬性,則呼叫該屬性指定的初始化方法。
(8)如果有beanpostprocessor與當前bean關聯,則與之關聯的物件的postprocess- afterinitialzation()方法將被呼叫。
(9)bean例項化完成,處於待用狀態,可以被正常使用了。
(10)當spring容器關閉時,如果bean實現了disposablebean介面,則destroy()方法將被呼叫。
(11)如果在配置檔案中配置bean時設定了destroy-method屬性,則呼叫該屬性指定的方法進行銷毀前的一些處理。
(12)bean例項被正常銷毀。
Spring中Bean的生命週期
乙個新的物件 使用singleton模式產生單一例項,對單執行緒的程式說並不會有什麼問題,但對於多執行緒的程式,就必須注意安全 thread safe 的議題,防止多個執行緒 同時訪問共享資源所引發的資料不同步問題。在spring中,singleton屬性預設是true,只有設定為false,則每次...
Spring中bean的生命週期
下面以beanfactory為例,說明乙個bean的生命週期活動 由beanfactory讀取bean定義檔案,並生成各個例項。執行bean的屬性依賴注入。如果bean類實現了org.springframework.beans.factory.beannameaware介面,則執行其setbeann...
Spring中Bean的生命週期
一 bean的定義 spring通常通過配置檔案定義bean。如 helloworld 這個配置檔案就定義了乙個標識為 helloworld 的bean。在乙個配置文件中可以定義多個bean。二 bean的初始化 有兩種方式初始化bean。1 在配置文件中通過指定init method 屬性來完成 ...