Spring中Bean的生命周期
- Spring中Bean的生命周期
- Bean的五生命周期。
- 1:实例化Bean
- 2:给Bean属性赋值
- 3:初始化Bean
- 4:使用Bean
- 5:销毁Bean
- Bean的七生命周期
- Bean的十步生命周期
Spring中Bean的生命周期
本文参考b站up主动力节点关于Spring的视频讲解。
注意:Spring容器只会对singleton也就是单例的Bean进行完整的生命周期管理。如果该Bean是prototype作用域的,Spring容器只负责将该Bean初始化完毕。客户端一旦获取到该Bean之后,Spring容器就不会对该Bean的生命周期进行管理了。
Bean的五生命周期。
总体上说,Bean在被创建到最后被销毁会经历下面这五个生命周期。
1:实例化Bean
调用Bean中的无参构造方法进行Bean的实例化。
2:给Bean属性赋值
调用Bean中的set方法来给Bean中的属性来赋值/
3:初始化Bean
会调用Bean的init()方法,这个init方法需要自己定义。
4:使用Bean
5:销毁Bean
会调用Bean的destory()方法,这个destroy方法同样需要自己定义。
Bean的七生命周期
Bean的七生命周期就是在Bean的第三步也就是初始化Bean的前后都可以添加“Bean后处理器”,可以在初始化Bean初始化前添加Bean后处理器的before方法和在Bean初始化后添加Bean后处理器的after方法。
下面是具体实现:
编写一个BeanPostProcessor类,重写before和after方法。
public class LogBeanPostProcessor implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
System.out.println("Bean后处理器的before方法执行,即将开始初始化");
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
System.out.println("Bean后处理器的after方法执行,已完成初始化");
return bean;
}
}
然后在Spring的XML配置文件中配置这个“Bean后处理器”,注意,这个配置会对当前配置文件中所有的bean起作用。
<!--配置Bean后处理器。这个后处理器将作用于当前配置文件中所有的bean。-->
<bean class="com.powernode.spring6.bean.LogBeanPostProcessor"/>
Bean的十步生命周期
仅作了解,具体可以参考相关资料。