首页 > 其他分享 >tmpspring流程

tmpspring流程

时间:2024-09-22 23:48:16浏览次数:8  
标签:bd beanFactory doc 流程 bean 实例 new tmpspring

spring流程

AbstractApplicationContext.refresh()
1、创建beanFactory{
1、new DefaultListableBeanFactory(null)
2、给beanFactroy设置一堆属性组件供以后使用
3、设置beanFactory的autowireCandidateResolver,
beanFactory.setAutowireCandidateResolver(
new QualifierAnnotationAutowireCandidateResolver());
4、加载xml变为BeanDefinition对象、实例化bean对象
loadBeanDefinitions(beanFactory);//-->AbstractXmlApplicationContext{
xmlreader.loadBeanDefinitions(configResources);{
// 1、xml转doc
Document doc = documentLoader.loadDocument(xxx);{// DefaultDocumentLoader

  }
  // 2、doc转BeanDefinition
  documentReader.registerBeanDefinitions(doc, createReaderContext(resource));{
    // DefaultBeanDefinitionDocumentReader
	1、创建delegate = new BeanDefinitionParserDelegate对象
	2、交给delegate去解析<bean>节点,注意这里得到的是holder对象
    BeanDefinitionHolder bdHolder = delegate.parseBeanDefinitionElement(ele);{
	  1、AbstractBeanDefinition bd = new GenericBeanDefinition;
	  2、一堆ifelse解析标签属性设置到bd对象属性上
	}
	3、注册到beanFactory的map里
	BeanDefinitionReaderUtils.registerBeanDefinition(bdHolder, getReaderContext().getRegistry());
	/*
	beanFactory
      bd属性
       |-beanDefinitionMap 类型Map<String, BeanDefinition>,key是beanName,value是bd对象
       |-beanDefinitionNames 类型List<String>,元素是beanName
	*/
  }
}

}

}

2、给beanFactory设置一堆众小弟

3、提前实例化beanFactroy里所有 BeanDefinitionRegistryPostProcessor 和 BeanFactoryPostProcessor 实例
调用它们的方法修改beanFactory做个性化逻

4、提前实例化beanFactory里所有 BeanPostProcessor ,跟C同理通过getBean实例化并分为4组,
加入到beanFactory的BeanPostProcessor属性里(这是个ArrayList),
注:会先手动加入new BeanPostProcessorChecker(用于打印普通bean创建成功日志),等上面4组加入完成,最后再手动加入new ApplicationListenerDetector(探测普通bean如果实现了ApplicationListener接口,按照监听者模式这些bean就是监听器,把这些bean的引用放到一个地方,当有事件发生时,调用所有监听器)

5、

标签:bd,beanFactory,doc,流程,bean,实例,new,tmpspring
From: https://www.cnblogs.com/bplan/p/18426117

相关文章

  • 《深度学习》卷积神经网络CNN 原理及其流程解析
    目录一、CNN图像原理1、了解图像的原理2、举例二、CNN图像识别1、画面不变性2、主要表现    1)平移不变性    2)尺度不变性    3)旋转不变性3、传统神经网络识别    1)数据预处理    2)特征提取    3)搭建神经网络模型......
  • 04. 流程控制
    一、流程控制  流程控制就是用来控制程序运行中各语句执行顺序的语句。基本的流程结构为:顺序结构,分支结构(或称选择结构),循环结构。顺序结构:程序自上到下执行,中间没有任何判断和跳转;分支结构:根据条件,选择性的执行某段代码,有if……else和switch……case两种分支语句;循环结......
  • 数据飞轮的演进与实践:探索出行行业的数据聚类和流程优化
    在当今的数据驱动时代,从数据仓库的构建到数据中台的发展,再到数据飞轮的形成,每一个阶段都是对大数据技术的深度挖掘和运用。在出行行业,这种技术的演化尤为显著,涉及到的技术层面包括数据采集、分析、流计算等多个方面。在这篇文章中,我们将深入探讨如何在出行行业应用这些技术,通过具体......
  • 编译流程背后的一些技术细节
    在c#语言中,中间代码是如何被转换为特定平台的机器码的在C#语言中,中间代码是通过.NET框架中的**公共语言运行时(CommonLanguageRuntime,CLR)**转换为特定平台的机器码的。这个过程涉及几个关键步骤,主要包括编译、JIT编译和执行。以下是详细的解释:1.源代码编译成中间语言(I......
  • 听说ChatGPT o1推理模型即将问世,传统问答系统是否还有存在的必要?毕业设计:基于知识图谱
     OpenAI隆重推出全新一代的o1模型,该模型在多个领域展现出了非凡的能力,标志着人工智能技术的又一次飞跃。该模型专门解决比此前的科学、代码和数学模型能做到的更难的问题,实现复杂推理。那来看看并体验以下我们传统的问答系统的设计流程和具体面貌吧!!!1.1系统架构设计1.1.1......
  • HiCar认证流程及费用
    HiCar认证是华为提供的一项针对车载智能互联系统的认证服务,旨在确保设备和应用能够与华为HiCar系统无缝连接和交互,从而为用户提供智慧出行体验。其主要目的是确保车载设备、手机等智能设备能够顺利接入华为HiCar系统,实现人、车、家全场景的智慧互联体验。 HiCar认证涵盖范围:华为H......
  • airplay认证流程有哪些?
    **AirPlay认证流程解析**在当前的数字时代,无线传输技术已成为连接设备、分享内容的标配。AirPlay,作为苹果公司开发的一种专有无线通信技术,允许用户将音频、视频和屏幕镜像从iOS设备、macOS计算机无线传输到支持的接收设备,如扬声器、电视和投影仪等。为了保障用户的使用体验和内容的......
  • Docker 前后端部署流程
    Docker前后端部署流程1Docker基本知识2后端部署使用tomcat容器部署后端#创建数据卷,映射出tomcat容器的webapps目录和logs目录mkdir-p/usr/local/dockertest/tomcat/webapps/usr/local/dockertest/tomcat/logs设置tomcat容器日志方式tomcat默认logs下没有catalina.......
  • 第03章_流程控制语句
    流程控制语句:用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。顺序结构:程序从上到下逐行地执行,中间没有任何判断和跳转。分支结构:根据条件,选择性地执行某段代码。有if…else、switch-case两种分支语句。循环结构:根据循环条件,重复性的执行......
  • Java后端中的持续交付:如何构建从开发到上线的自动化流程
    Java后端中的持续交付:如何构建从开发到上线的自动化流程大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在现代软件开发中,持续交付(ContinuousDelivery)是实现快速、高效发布的重要方法。它使得软件的发布过程变得更加自动化、可重复和可靠。本文将探讨......