??????? 傳統JavaBean的生命周期非常簡單。用關鍵字new用來實例化Bean就可以了,而Bean的生命周期在Spring中更復雜。理解Spring Bean的生命周期非常重要,因為你也許需要利用Spring提供的機會來定制Bean的創建過程。

          ?????????Bean的生命周期:(Bean在工廠中的生命周期和在Spring應用上下文中的生命周期只有一點不同)
          ???????????????? 1.容器尋找Bean的定義信息并且將其實例化。
          ?????????????????2.使用依賴注入,Spring按照Bean定義信息配置Bean的所有屬性。
          ???????????????? 3.如果Bean實現了BeanNameAware接口,工廠調用Bean的setBeanName()方法傳遞Bean的ID。
          ?????????????????4.如果Bean實現了BeanFactoryAware接口,工廠調用Bean的setBeanFactory()方法傳入工廠自身。
          ???????????????? 5.如果是在Spring應用上下文中,如果Bean實現了ApplicationContextAware接口,setApplicationContext()方法會被調用。
          ???????????????? 6.如果有BeanPostProcessor和Bean關聯,那么它們的postProcessBeforeInitialization()方法將被調用。
          ???????????????? 7.如果Bean指定了init-method方法,它將被調用
          ???????????????? 8.最后,如果有BeanPostProcessor和Bean關聯,那么它們的postProcessAfterInitialization()將被調用。

          ??????????到這個時候,Bean已經可以被應用系統使用了,并且保留在Bean Factory中直到它不再被需要。有兩種方法可以把它從Bean Factory中刪除掉。
          ???????????????? 1.如果Bean實現了DisposableBean接口,destroy方法被調用。
          ???????????????? 2.如果指定了定制的銷毀方法,就調用這個方法。
          ?????????????

          posted on 2006-08-24 23:14 knowhow 閱讀(391) 評論(0)  編輯  收藏 所屬分類: Framework
          主站蜘蛛池模板: 屯留县| 板桥市| 通道| 龙陵县| 石楼县| 翼城县| 兰考县| 衡阳市| 洛宁县| 嘉荫县| 灵寿县| 越西县| 镇雄县| 青岛市| 黄骅市| 剑河县| 东乌珠穆沁旗| 象州县| 林甸县| 纳雍县| 泰来县| 咸宁市| 玛纳斯县| 金山区| 防城港市| 陈巴尔虎旗| 彭山县| 汉阴县| 南涧| 牙克石市| 卫辉市| 罗山县| 德庆县| 临湘市| 恩平市| 金门县| 稷山县| 永胜县| 济源市| 化德县| 晴隆县|