现在的位置: 首页 > 综合 > 正文

如何管理SpringBean的生命周期?具体步骤解析

2020年02月05日 综合 ⁄ 共 1186字 ⁄ 字号 评论关闭

如何管理Spring Bean的生命周期?回答这个问题之前,我们可以先来看看Bean的定义,Bean是一个被实例化,组装,并通过Spring IOC容器所管理的对象。换句话说,那些组成应用程序的主体以及由Spring IOC容器所管理的对象就是bean。另外,在Spring中bean默认都是单例的。想要管理Spring Bean的生命周期,大概要按照以下步骤去做:

步骤1:实例化一个Bean,也就是我们通常说的new;  

步骤2:按照Spring上下文对实例化的Bean进行配置,也就是IOC注入;  

步骤3:如果这个Bean实现了BeanNameAware接口,会调用它实现的setBeanName(String beanId)方法,此处传递的是Spring配置文件中Bean的ID;  

步骤4:如果这个Bean实现了BeanFactoryAware接口,会调用它实现的setBeanFactory(),传递的是Spring工厂本身(可以用这个方法获取到其他Bean);  

步骤5:如果这个Bean实现了ApplicationContextAware接口,会调用;setApplicationContext(ApplicationContext)方法,传入Spring上下文,该方式同样可以实现步骤4,但比4更好,以为ApplicationContext是BeanFactory的子接口,有更多的实现方法;  

步骤6:如果这个Bean关联了BeanPostProcessor接口,将会调用postProcessBeforeInitialization(Object obj, String s)方法,BeanPostProcessor经常被用作是Bean内容的更改,并且由于这个是在Bean初始化结束时调用After方法,也可用于内存或缓存技术;  

步骤7:如果这个Bean在Spring配置文件中配置了init-method属性会自动调用其配置的初始化方法;  

步骤8. 如果这个Bean关联了BeanPostProcessor接口,将会调用postAfterInitialization方法。需要注意:以上工作完成以后就可以用这个Bean了,那这个Bean是一个single的,所以一般情况下我们调用同一个ID的Bean会是在内容地址相同的实例;  

步骤9:当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean接口,会调用其实现的destroy方法;  

步骤10:最后,如果这个Bean的Spring配置中配置了destroy-method属性,会自动调用其配置的销毁方法。

以上就是管理Spring Bean生命周期的十大步骤解析。相信大家看到这里,对于刚开始的问题已经有自己的答案了。关于Java的更多答疑解惑,敬请关注学步园Java栏目的资讯更新。

抱歉!评论已关闭.