??????? 傳統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.如果指定了定制的銷毀方法,就調用這個方法。
?????????????