spring框架中的bean對象的聲明週期

轉載地址:http://developer.51cto.com/art/201104/255961.htm

spring的產生bean對象

在spring中,從BeanFactory或ApplicationContext取得的實例爲Singleton,也就是預設爲每一個Bean的別名只能維持一個實例,而不是每次都產生一個新的對象使用Singleton模式產生單一實例,對單線程的程序說並不會有什麼問題,但對於多線程的程序,就必須注意安全(Thread-safe)的議題,防止多個線程同時存取共享資源所引發的數據不同步問題。

通過ApplicationContext的方式獲取到bean對象的生命週期如下

1、當scope=singleton時,實例化(當程序加載applicationContext.xml文件),把我們的bean對象加載到內存中

2、調用set方法設置屬性(properaty)

3、BeanNameAware的setBeanName():如果你實現了bean名字關注接口(BeanNameAware)則,可以通過setBeanName獲取id號

4、BeanFactoryAware的BeanFactory():如果你實現了 bean工廠關注接口,(BeanFactoryAware),工廠調用setBeanFactory()方法傳入工廠自身

5、如果你實現了 ApplicationContextAware接口,則調用方法傳遞ApplicationContext

6、如果bean和一個後置關聯器有關,則會自動調用Object postProcessBeforeInitialization方法

7、如果實現InitializingBean 接口,就會調用afterPropertiesSet方法()

8、如果自己在<bean init-method=”init” /> 則可以在bean定義自己的初始化方法.

9、如果一個bean和後置關聯器有關,則會自動調用Object postProcessAfterInitialization方法

10、使用bean

11、容器關閉

12、可以通過實現DisposableBean 接口來調用方法 destory

13、可以在<bean destory-method=”fun1”/>調用定製的銷燬方法


通過工廠模式生成的bean對象的生命週期



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章