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

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

          posted on 2006-08-24 23:14 knowhow 閱讀(395) 評論(0)  編輯  收藏 所屬分類: Framework
          主站蜘蛛池模板: 安多县| 安阳县| 邳州市| 镇赉县| 乐平市| 搜索| 织金县| 克拉玛依市| 阿城市| 平顺县| 滨州市| 澄迈县| 富蕴县| 治多县| 肇东市| 永川市| 酒泉市| 石河子市| 珲春市| 双城市| 裕民县| 株洲市| 大田县| 车险| 阿鲁科尔沁旗| 高要市| 漾濞| 台东县| 丹寨县| 泽州县| 东莞市| 汉阴县| 衡山县| 泾源县| 黄浦区| 霍邱县| 平南县| 富民县| 巴青县| 丰都县| 福泉市|