当前位置: 首页 > news >正文

--- Bean 的生命周期 ---

一个spring bean对象的生命周期会经过5个阶段 分别是

实例化 

在jvm堆内存中为这个bean分配空间, 这时这个对象就有了物理空间,具体这个对象在内存上的储存可以这样理解

在对象头中储存了一些对象的信息,比如锁 gc信息 哈希值 什么的,其中这里面又个很重要的是

klass pointer 这个指针指向的是存在方法区中的该类的信息块

在图中可以知道,并没有方法所在的区块,这不是我故意没画出来,在实例化类的时候,他并不会把方法也复制一份给对象,而实际能运行的方法是储存在类信息块中的,调用方法是通过调用klass pointer来在类信息中找到对应的方法并执行

属性赋值 

将这个bean对象注入到代码中,这时在代码中应用bean的字段就不会为空了

bean的注入和装配,将这个bean注入到代码中

初始化

这里会执行各种通知aware接口的各种方法BeanNameAware , BeanFactoryAware , ApplicationContextAware类

BeanNameAware身份感知:会让这个bean知道自己在容器中的名字

BeanFactoryAware容器工厂感知: 注入BeanFactoryAware实例,这个类提供了从容器中获取其他bean的接口

ApplicationContextAware​​应用上下文感知:他能让bean获得更多的信息比如环境配置信息,资源文件统一加载等

之后会执行初始化方法

先执行构造方法 --> 注入属性 --> 执行@PostConstruct的方法 

使用

现在就能正常使用这个对象了

销毁

在销毁前会执行@PreDestroy方法

http://www.dtcms.com/a/283441.html

相关文章:

  • Redis键过期后会立即删除吗
  • 光环效应(HALO Effect)
  • MySQL高并发高可用架构设计与实现:主从复制与读写分离
  • x86版Ubuntu的容器中运行ARM版Ubuntu
  • 3分钟实战!用DeepSeek+墨刀AI生成智能对话APP原型图
  • Karate(Java)接口自动化测试框架
  • 代码随想录算法训练营第五十天|图论part1
  • 【图像处理基石】如何入门人体关键点检测?
  • 迁移学习--基于torchvision中VGG16模型的实战
  • 【FreeRTOS#5】任务挂起与恢复实例
  • 信息收集知识总结
  • Git分支管理完全指南:从创建到合并与冲突解决
  • Java的Gradle项目,使用SLF4J+Log4j2+log4j2.xml
  • 深度隐匿源IP:高防+群联AI云防护防绕过实战
  • C++-linux系统编程 10.内核原理基础
  • 用python程序通过指纹识别开关车门
  • 开源 python 应用 开发(六)网络爬虫
  • 健康生活,从细节开始
  • 线程学习day1---基础知识+pthread_create、self、exit、cancle、join
  • pymongo库:简易方式存取数据
  • Android 15 Settings 搜索框增加暗码功能实现
  • Windows10系统上Node.js的安装及环境配置
  • lua(xlua)基础知识点记录一
  • gem install报错解析
  • 小程序中状态管理Redux
  • ROCK Robotic R3 Pro -替代L2,适配多款无人机,支持机载、手持、车载以及船载
  • DrissionPage:一款让网页自动化更简单的 Python 库
  • 使用defineExpose暴露子组件的属性和方法、页面生命周期onLoad和onReady的使用
  • 【AI论文】可追溯证据增强的视觉基础推理:评估与方法论
  • OSS文件上传解析失败,错误:文件下载失败的排查与解决