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

Java面试(4)之 Spring Bean生命周期过程

一, 整个加载的完整链路图

更详细的生命周期函数链路图(仅供参考)

二, Bean实例化的四种方式:

1, 无参构造器(默认且常用)6

2, 静态工厂方法方式(factory-method指定实例化的静态方法)

3, 实例工厂方法方式(factory-bean指定bean的name,factory-method指定实例化方法)

4, 实现FactoryBean接口方式(实现getObject和getObjectType方法)

三, Bean的实例化过程分为两个阶段:

1, 容器启动阶段

1, 配置元信息(xml、properties、yml、yaml、硬编码等)

2, BeanDefination(对象通过BeanDefination进行管理)

3, BeanDefinationReader(不同的元信息通过BeanDefinationReader进行加载,最后统一由BeanDefination管理)

4, BeanDefinationRegistry(键值对的形式存储,key为bean的ID,value就是对应的BeanDefination)

5, BeanFactoryPostProcessor(底层采用AOP切面的方式可以对BeanDefination中存储的Bean进行修改、替换,也可以添加新的Bean对象)

http://www.lryc.cn/news/313340.html

相关文章:

  • JavaSE——面向对象高级一(1/4)-static修饰成员变量、应用场景,static修饰成员方法、应用场景
  • 轻量脚本语言Lua的配置与c++调用
  • 力扣每日一道系列 --- LeetCode 160. 相交链表
  • 设计模式-建造者模式实践案例
  • freeRTOS_20240308
  • 利用chatgpt写论文使用教程
  • SMiC矩阵将于3月6日正式上线,开启数字化经济新纪元
  • 备战蓝桥杯---动态规划的一些思想2
  • 卫星导航 | 坐标系---地理坐标系与UTM坐标系
  • JavaEE之volatile关键字
  • 代码学习记录10
  • java——2024-03-03
  • Ubuntu安装conda以后,给jupyter安装C++内核
  • 【谈判】核心思想(抓大放小)
  • 洛谷P5908 猫猫和企鹅 做题反思(2024.3.7)
  • 常见的验证码
  • 11. C语言标准函数库
  • 2016年认证杯SPSSPRO杯数学建模C题(第一阶段)如何有效的抑制校园霸凌事件的发生解题全过程文档及程序
  • 设计模式-抽象工厂模式实践案例
  • 用readproc函数读取进程的状态
  • 在高并发、高性能、高可用 三高项目中如何设计适合实际业务场景的分布式id(一)
  • redis最新版本在Windows系统上的安装
  • 【深度优先】【图论】【C++算法】2045. 到达目的地的第二短时间
  • 思维题(蓝桥杯 填空题 C++)
  • Meta的Llama2模型已上线!但我为何更推荐你从HuggingFace获取?还有Code Llama等你来解锁!
  • CAN总线及通讯的工作原理
  • linux下修改网卡MAC地址
  • 47、WEB攻防——通用漏洞Java反序列化EXP生成数据提取组件安全
  • phpstorm console xdebug
  • Vue template到render过程