Spring | createBeanInstance传入的有参和 applyPropertyValues中的属性有什么关系

基本功能

createBeanInstance Bean的实例化

  • 会根据构造函数参数创建Bean的实例。构造函数参数通常是通过依赖注入提供的,这些依赖可能是其他bean或者简单的值类型

applyPropertyValues Bean的属性设置

  • 在Bean实例创建后,负责将剩余的属性值注入到Bean实例中。这些属性值可能来自于Bean定义中的setter方法、字段注入或者是默认构造函数创建后的属性设置

相互关系

  1. 构造函数参数与属性注入的互补性
  • 如果Bean使用了有参构造函数,构造函数的参数通常会在createBeanInstance 阶段解决,这些参数可能是其他Bean的引用或简单值
  • 剩余的属性,即那些没有通过构造函数初始化的属性,将在applyPropertyValues阶段通过setter方法或其他注入策略进行填充
  1. 依赖关系的传递性
  • createBeanInstance阶段解决的构造函数参数依赖,可能本身就是通过applyPropertyValues在它们自己的Bean实例化过程中填充的
  • 当一个Bean通过构造函数依赖于另一个Bean时,后者也必须经过createBeanInstanceapplyPropertyValues的过程来确保完全初始化
  1. 属性注入的顺序
  • createBeanInstance优先处理构造函数依赖,确保Bean实例在创建时就具备了核心依赖
  • applyPropertyVlues则处理剩余的属性注入,确保Bean完全配置好,准备就绪
posted @ 2024-07-25 16:26  Neking  阅读(1)  评论(0编辑  收藏  举报