首页 > 其他分享 >Spring | createBeanInstance传入的有参和 applyPropertyValues中的属性有什么关系

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

时间:2024-07-25 16:31:54浏览次数:14  
标签:Spring Bean 实例 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完全配置好,准备就绪

标签:Spring,Bean,实例,createBeanInstance,applyPropertyValues,构造函数,属性
From: https://www.cnblogs.com/dolphinmind/p/18323490

相关文章

  • 深入探讨Spring Boot中的参数传递
    深入探讨SpringBoot中的参数传递在SpringBoot开发中,参数传递是一个非常常见且重要的操作。无论是处理HTTP请求,还是在方法之间传递数据,理解和掌握参数传递的各种方式都能让我们的代码更加简洁和高效。今天,我们就来深入探讨一下SpringBoot中的参数传递。1.基础知识:HTTP请求参......
  • 使用Spring Boot和Netty打造高性能聊天服务(一):基础入门
    使用SpringBoot和Netty打造高性能聊天服务(一):基础入门在现代互联网应用中,实时聊天功能已经成为了许多应用的标配。无论是社交应用、在线客服系统,还是游戏中的实时交流,聊天功能都扮演着重要角色。今天,我们将使用SpringBoot和Netty来构建一个高性能的聊天服务。本文是系列文章的第......
  • 使用 IntelliJ IDEA 脚手架快速搭建 Spring Boot 项目
    使用IntelliJIDEA脚手架快速搭建SpringBoot项目大家好!今天我们来聊聊如何使用IntelliJIDEA脚手架快速搭建一个SpringBoot项目。SpringBoot是一个非常流行的Java框架,它简化了Spring应用的开发过程。而IntelliJIDEA则是一个功能强大的IDE,能够大大提高我们的......
  • SpringBoot3.x整合Druid数据库连接池
    引入依赖<!--Druid数据库连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-3-starter</artifactId><version>1.2.21</version></dependency......
  • springboot+vue前后端分离项目:导出功能报错Request processing failed: cn.hutool.cor
    1.报错截图: 2.hutool官网,推荐引入poi-ooxml依赖 3.mvn仓库找到依赖 4.用最新版依赖 5.复制到本项目pom.xml,刷新maven 解决......
  • springboot自学(2)Bean的加载控制
    Bean的加载控制Bean的加载控制指根据特定情况对bean进行选择性加载以达到适用于项目的目标。那么哪些加载方式适用于编程的形式加载控制呢    控制的演示  注解形式控制bean加载使用@conditional注解的派生注解设置各种组合条件控制bean的加载 有诸多......
  • Spring Boot解决跨域问题(端口不一致)
    目录一、什么是跨域二、跨域产生的原因三、当遇到不同端口之间的跨域访问时@CrossOrigin注解添加注解四、当解决完跨域问题发现发送请求时不带cookie问题情况: 解决:五,注意一、什么是跨域跨域是指在浏览器中,当一个网页的脚本试图去访问另一个网页的资源时,如果这两......
  • Springboot网络安全宣传小程序 毕业设计源码70468
                         摘 要随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,网络安全宣传小程序被用户普遍使用,为方便用户能够......
  • SpringBoot + MyBatis 实现 MySQL 主从复制动态数据源切换
    概述在项目中的某些场景中,需要对数据库进行一些优化。常用的有如下的实现方法:读写分离、引入缓存技术、主从复制、分库分表等。今天来简单介绍一些如何在程序中实现动态切换数据源,可能某台服务器性能比较好,让流量多的方法执行切换到此数据源去操作等等。当然这种思想也可以扩展......
  • Java毕业设计:基于Springboot+vue的电影院管理系统
    【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享......