Spring源码系列 - 生命周期回调(Lifecycle Callbacks)

本文详细探讨了Spring框架中Bean的生命周期回调,包括初始化回调的三种方式:@PostConstruct、InitializingBean接口、init-method,以及销毁回调的@PreDestroy、DisposableBean接口、destroy-method。此外,还介绍了Spring容器的生命周期回调,如Lifecycle和SmartLifecycle接口的使用及其执行顺序和优先级。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生命周期回调(Lifecycle Callbacks)

简单说一下,生命周期:就是一个 Bean 从产生到消亡的过程,整个过程就叫做整个 Bean 的生命周期,生命周期回调:就是在几个重要的节点,通知你,它进行到了那一步,比如,Bean 产生了,它就会通知你,“嘿,我已经产生了,你是不是要给我送点啥?”,Bean 消亡了,它也会提前一步通知你,“喂,我快挂啦,你是不是要帮我准备准备后事…”

本文会说明 Bean 的生命周期回调 以及 容器的生命周期回调

一、对 Bean 的生命周期回调

  • 初始化回调(Initialization Callbacks)

对 Bean 的初始化回调方式总共有三种方式

  • 在方法上使用 @PostConstruct 注解,来标志这是一个初始化回调方法
    • 我们可以认为构造函数 Construct 标志着整个函数被创建,而 @PostConstruct 注解的方法,就是创建后,它的回调方法
@Component
public class MyService {
   

    public MyService() {
   
        System.out.println("bean init");
    }

    @PostConstruct
    public void init() {
   
        // 第一执行
        System.out.println("spring init");
    }
}
  • 实现 InitializingBean 接口,重写 afterPropertiesSet() 方法
    • Bean 去实现 InitializingBean 接口,然后重写 afterPropertiesSet() 方法即可
      • afterPropertiesSet() 方法就是 Bean 的初始化回调方法
@Component
public class MyService implements InitializingBean {
   

    public MyService() {
   
        System.out.println("bean init"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值