Spring源码-Bean初始化和销毁

本文深入解析Spring Bean的初始化方法,包括PostConstruct注解、InitializingBean接口、自定义初始化、延迟初始化、销毁机制(PreDestroy和DisposableBean)。探讨了不同初始化顺序和配置方式,以及延迟加载对应用行为的影响。

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

Bean 初始化(Initalization)

  • @PostConstruct 注解方法

  • 实现InitializingBean 接口的afterPropertiesSet()方法

  • 自定义初始化方法
    1. XML配置: <bean init-method=“init”
    2. Java 注解:@Bean(initMethod=“init”)
    3. JavaAPI:AbstractBeanDefinition#setInitMethodName

    执行的顺序:
    @PostConstruct >InitializingBean >自定义初始化方法

Bean 延迟初始化

  • XML配置:<bean lazy-init=“true”
  • Java注解:@Lazy(true)

当某个Bean 定义为延迟初始化,Spring 容器返回的对象和非延迟的对象存在怎么样的差异?

非延迟初始化再Spring 应用上下文启动完成后,被初始化

延迟加载是Spring 应用上下文启动完成后,通过依赖查找触发它的初始化

销毁Spring Bean

  1. @PreDestroy 标注方法
  2. 实现DisposableBean 接口的destroy()方法
  3. 自定义销毁方法
    XML 配置
    @Bean(destroy=“methodName”)
    JavaAPI: AbstractBeanDefinition#setDestroyMethodName

@PreDestroy >DisposableBean >自定义初始化方法

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GO兔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值