類別
說明singleton
在springioc容器中僅存在乙個bean例項,bean以單例項的方式存在
prototype
每次呼叫getbean()時都會返回乙個新的例項
request
每次http請求都會建立乙個新的bean,該作用域僅適用於
session
同乙個http session共享乙個bean,不同的http session使用不同的
當bean被載入到容器的時候呼叫init當bean從容器中刪除的時候呼叫 destroy(scope=
singleton有效)
web容器中會自動呼叫,但是main函式或測試用例需要手動呼叫
1.instantiate bean物件例項化2.populate properties封裝屬性3. 如果bean實現beannameaware執行setbeanname4. 如果bean實現beanfactoryaware或者設定工廠setbeanfactory或者上下文物件5. 如果存在類實現beanpostprocessor(後處理bean) ,執行postprocessbeforeinitializationman實體類6. 如果bean實現initializingbean執行afterpropertiesset
7. 呼叫指定初始化方法init如果存在類實現beanpostprocessor(處理bean) ,執行postprocessafterinitialization
8. 執行業務處理
9. 如果bean實現disposablebean執行destroy
10. 呼叫指定銷毀方法customerdestroy
private string name;
public string getname()
public void setname(string name)
public man()
public void setup()
public void teardown()
@override
public void setbeanname(string name)
@override
system.out.println("第四步:了解工廠資訊");
}@override
public void afterpropertiesset() throws exception
public void run()
@override
public void destroy() throws exception }
mybeanpostprocessor
public class mybeanpostprocessor implements beanpostprocessor
@override
public object postprocessafterinitialization(object bean, string beanname) throws bean***ception
return method.invoke(bean,args);
}});
return proxy;
}else }}
測試類:
public class springdemo3
}
執行結果:
spring容器中的bean建立
springioc spring容器中的bean建立 三種方案 面試題 利用預設的建構函式 利用靜態工廠方法 利用例項工廠方法 建立物件的時機 預設情況下,在spring啟動的時候,建立納入spring容器中所有的bean 在spring容器啟動的時候,可以檢查錯誤 但是如果bean的屬性中有資料,...
Spring容器中Bean的lazy init屬性
在spring容器中新增兩個物件 testbean class com.fhx.testbean testbean class com.fhx.testbean lazy init false lazy init 設定只對scop屬性為singleton的bean起作用 lazy init fals...
Spring中利用容器得到Bean物件
在 spring 中提供了兩種方法用來載入配置檔案的資訊和得到我們需要的 bean 這就是 beanfactory 介面和介面 下面分別來介紹如何得到 bean物件 1 beanfactory 方式,spring 為我們提供了很多易用的 beanfactory 介面實現,其中 xmlbeanfact...