传统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 阅读(382) 评论(0)  编辑  收藏 所属分类: Framework