隨筆-295  評(píng)論-26  文章-1  trackbacks-0
          Spring中Bean的生命周期
          ? ? 在傳統(tǒng)的Java應(yīng)用中,Bean的生命周期非常簡(jiǎn)單。Java的關(guān)鍵詞new用來(lái)實(shí)例化Bean(或許他是非序列化的)。這樣就夠用了。相反,Bean的生命周期在Spring容器中更加細(xì)致。理解Spring Bean的生命周期非常重要,因?yàn)槟慊蛟S要利用Spring提供的機(jī)會(huì)來(lái)訂制Bean的創(chuàng)建過(guò)程。


          1. 容器尋找Bean的定義信息并且將其實(shí)例化。
          2.受用依賴注入,Spring按照Bean定義信息配置Bean的所有屬性。
          3.如果Bean實(shí)現(xiàn)了BeanNameAware接口,工廠調(diào)用Bean的setBeanName()方法傳遞Bean的ID。
          4.如果Bean實(shí)現(xiàn)了BeanFactoryAware接口,工廠調(diào)用setBeanFactory()方法傳入工廠自身。
          5.如果BeanPostProcessor和Bean關(guān)聯(lián),那么它們的postProcessBeforeInitialzation()方法將被調(diào)用。
          6.如果Bean指定了init-method方法,它將被調(diào)用。
          7.最后,如果有BeanPsotProcessor和Bean關(guān)聯(lián),那么它們的postProcessAfterInitialization()方法將被調(diào)用。
          ??? 到這個(gè)時(shí)候,Bean已經(jīng)可以被應(yīng)用系統(tǒng)使用了,并且將被保留在Bean Factory中知道它不再需要。有兩種方法可以把它從Bean Factory中刪除掉。
          1.如果Bean實(shí)現(xiàn)了DisposableBean接口,destory()方法被調(diào)用。
          2.如果指定了訂制的銷毀方法,就調(diào)用這個(gè)方法。
          ??? Bean在Spring應(yīng)用上下文的生命周期與在Bean工廠中的生命周期只有一點(diǎn)不同,唯一不同的是,如果Bean實(shí)現(xiàn)了ApplicationContextAwre接口,setApplicationContext()方法被調(diào)用。



          大盤預(yù)測(cè) 國(guó)富論
          posted on 2007-08-28 12:56 華夢(mèng)行 閱讀(1854) 評(píng)論(0)  編輯  收藏 所屬分類: Spring
          主站蜘蛛池模板: 郴州市| 同心县| 滨海县| 临邑县| 延边| 邹城市| 本溪市| 丰顺县| 札达县| 山阴县| 博罗县| 太白县| 米林县| 广宁县| 西林县| 广元市| 淅川县| 宁陵县| 苍梧县| 翁源县| 内乡县| 宁河县| 区。| 鄢陵县| 曲麻莱县| 德保县| 乌兰察布市| 习水县| 徐州市| 麟游县| 高淳县| 中江县| 图木舒克市| 施甸县| 富裕县| 会东县| 玉门市| 惠安县| 建始县| 潼南县| 成安县|