Bean的生命周期

213 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第25天,点击查看活动详

大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Spring系列框架、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流

作者简介:

Bean的生命周期

Bean的执行流程 在这里插入图片描述 Bean对象执行流程

启动Spring容器 --->实例化Bean(分配内存空间,从无到有) ---> Bean注册到Spring中(存操作) --->将Bean装配到需要用的类中(取操作)

Bean生命周期

所谓的生命周期指的是一个对象从诞生到销毁的整个生命过程,我们把这个过程就叫做一个对象的生命周期。

Bean 的生命周期分为以下 5 大部分: 1.实例化 Bean(为 Bean 分配内存空间) 2.设置属性(Bean 注入和装配) 3.Bean 初始化

  • 实现了各种 Aware 通知的方法,如 BeanNameAware、BeanFactoryAware、ApplicationContextAware 的接口方法;
  • 执行 BeanPostProcessor 初始化前置方法;
  • 执行 @PostConstruct 初始化方法,依赖注入操作之后被执行;
  • 执行自己指定的 init-method 方法(如果有指定的话);
  • 执行 BeanPostProcessor 初始化后置方法。

4.使用 Bean 5.销毁 Bean

销毁容器的各种方法,如 @PreDestroy、DisposableBean 接口方法、destroy-method。

执行流程如下图所示 在这里插入图片描述 实例化和初始化区别

实例化和属性设置是 Java 级别的系统“事件”,其操作过程不可人工干预和修改;而初始化是给开发者提供的,可以在实例化之后,类加载完成之前进行自定义“事件”处理。

简单说就是实例化只是分配了内存空间,并没有进行其他操作! 而初始化是真正创建了一个实例,给这块空间存放了数据!

我们拿买房举例理解Bean生命流程

  • 实例化(买了一套房)
  • 设置属性(装修)
  • 初始化(买家电,家具各种初始化)
  • 使用Bean(入住使用房间)
  • 销毁Bean(将房子卖了)

在这里插入图片描述