首页 > 其他分享 >Spring中Bean的实例化过程

Spring中Bean的实例化过程

时间:2024-06-16 13:44:33浏览次数:15  
标签:调用 构造方法 委托 Spring instantiate Bean 实例 方法

AbstractAutowireCapableBeanFactory.doCreateBean方法

一、调用createBeanInstance 方法中
会获取容器中所有的BeanPostProcessor对象,并进行循环筛选出来自于 SmartInstantiationAwareBeanPostProcessor接口的实现类,
并调用实现类的 determineCandidateConstructors方法获取到有@Autowired 或者 @Value注解的构造方法。

如果构造方法是无参的,则委托SimpleInstantiationStrategy.instantiate,最终委托BeanUtils.instantiateClass(constructorToUse, new Object[0]);方法完成Bean对象的创建

如果构造方法是有参的,则调用AbstractAutowireCapableBeanFactory.autowireConstructor方法,并委托
ConstructorResovler.autowireConstructor | instantiate 方法,
最终还是委托SimpleInstantiationStrategy.instantiate,最终委托 BeanUtils.instantiateClass(ctor, args);方法完成Bean对象的创建

标签:调用,构造方法,委托,Spring,instantiate,Bean,实例,方法
From: https://www.cnblogs.com/velloLei/p/18250538

相关文章

  • (必读pdf)SQL经典实例(第2版) ([美] 安东尼 • 莫利纳罗 [澳] 罗伯特 • 德 • 格拉夫 [格
    书:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqsoSQL基础与高级特性:概述SQL的基本语法和常用操作,并介绍一些高级特性,如窗口函数、递归查询等。统计分析应用:展示如何使用SQL进行统计分析,包括数据的汇总、分组、排序以及趋势分析等。报表制作技巧:介绍如何使用SQL......
  • Spring中Bean的初始化创建AbastractApplicationContext.FinishBeanFactoryInitializat
    AbastractApplicationContext.FinishBeanFactoryInitialization模版调用子类DefaultListableBeanFacotry.preInstantiateSingletons通过循环子类DefaultListableBeanFactory中收集到的所有beanDefinitionNames,对满足条件的Bean进行初始化,getBean操作会调用父类AbstractBean......
  • Springboot计算机毕业设计远程在线诊疗系统小程序【附源码】开题+论文+mysql+程序+部
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,远程医疗作为一种新兴的医疗模式,正逐渐受到广泛关注和认可。特别是在疫情等突发公共卫生事件的影响下,远程在线诊疗系统小程序......
  • Springboot计算机毕业设计远景民宿酒店预订小程序【附源码】开题+论文+mysql+程序+部
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着旅游业的快速发展和消费者对旅游体验要求的提升,民宿作为一种独特的住宿方式,越来越受到游客的青睐。然而,传统的民宿预订方式存在着信息不对称、预......
  • Spring的事务步骤
    一、事务处理方案:Spring框架中提供的事务处理方案:一共有两种: 1.适合中小项目使用的,注解方案:        注解的方式做事务用起来简单,灵活,方便,中小型项目中用它比较方便,因为只需要@Transactional注解就OK了;这种方式用的就是spring框架自己提供的事务的处理机制,@Transac......
  • 基于SpringBoot+Spark搭建本地计算引擎服务
    1.项目背景 上一篇文章我们讲解了搭建数据挖掘可视化系统(大数据数据挖掘系统可视化设计艺术-CSDN博客)的主要内容,通过构建算子工作流可以完成数据挖掘的工作。这时这里的算子可以提交到本地计算请求,也可以提交大数据集群做计算,本文将详细介绍搭建本地计算请求的过程。2.......
  • [面试题]Spring MVC
    考虑到SpringMVC和Rest关系比较大,所以本文一共分成两大块:SpringMVCRESTSpringMVCSpringMVC框架有什么用?SpringWebMVC框架提供”模型-视图-控制器”(Model-View-Controller)架构和随时可用的组件,用于开发灵活且松散耦合的Web应用程序。MVC模式有助......
  • Java学习 - MySQL数据库中 变量 和 流程控制 实例
    变量变量分类系统变量全局变量:对于服务器所有的连接有效会话变量:只在当前连接有效自定义变量用户变量:只在当前连接有效局部变量:仅在BEGIN-END中有效系统变量查看所有的系统变量SHOWGLOBAL|SESSIONVARIABLES;查看某些的系统变量SHOWGLOBAL|SESSION......
  • SpringAI快速上手
    一、导入依赖 镜像(导入maven依赖)<repositories><repository><id>spring-snapshots</id><name>SpringSnapshots</name><url>https://repo.spring.io/snapshot</url><releases>......
  • python学习 - 对目录操作和对文件操作的 实例代码
    #!/usr/bin/python#-*-coding:UTF-8-*-importosimportos,shutilclassOperatingFile:defcreatFile(self,path):f=file(path,"w+")f.close()defreadFile(self,path):#方法一f=open("E:/aa......