首页 > 其他分享 >tmpspringboot流程

tmpspringboot流程

时间:2024-09-23 16:37:45浏览次数:1  
标签:name 流程 commandLineArgs environment tmpspringboot context propertySources new

SpringApplication.run方法逻辑:

1、创建ApplicationArguments对象
applicationArguments -> new DefaultApplicationArguments(args)
  |- source -> new DefaultApplicationArguments$Source(args)
                "commandLineArgs"   commandLineArgs

source的类图如下:
Source
  SimpleCommandLinePropertySource
    CommandLinePropertySource
	  EnumerablePropertySource
        PropertySource
		  |- name "commandLineArgs"
		  |- T     commandLineArgs

2、创建environment对象,顺便创建下面的propertySources对象
ConfigurableEnvironment environment  -> new ApplicationServletEnvironment
  |- propertyResolver ConfigurationPropertySourcesPropertyResolver
  |- propertySources MutablePropertySources
       [StubPropertySource {name='servletConfigInitParams'}, 
	   StubPropertySource {name='servletContextInitParams'}, 
	   PropertiesPropertySource {name='systemProperties'}, 
	   SystemEnvironmentPropertySource {name='systemEnvironment'}]
	   new SimpleCommandLinePropertySource(args)

3、创建ApplicationContext对象
context -> AnnotationConfigServletWebServerApplicationContext
context.addBeanFactoryPostProcessor(new PropertySourceOrderingBeanFactoryPostProcessor(context));

4、调用刷新方法回到以前spring的流程
refreshContext -> refresh(context); -> applicationContext.refresh();回到以前的spring正常流程,之后jayspt的beanfactory后置处理器被调用,把environment.propertySources里所有PropertySource都给包装一下重新赋值到environment里。

总结:
1、springboot比spring多了上面步骤1,2步骤。
2、springboot里给bean设置字符串属性时读取值遍历上面多个propertySources对象,每个对象当成map就行,有的对象对应application.yml,有的对应启动脚本里的入参参数集合,有的对应当前系统的环境遍历,有的对应webcontext(我估计类似以前web.xml)里的key,value集合。

标签:name,流程,commandLineArgs,environment,tmpspringboot,context,propertySources,new
From: https://www.cnblogs.com/bplan/p/18427260

相关文章

  • BPM(业务流程管理)的最佳开源工具
    在上个月的文章中,我们探讨了BPM并总结了构建BPM应用程序的三大步骤。什么是BPM,如何构建一个BPMApp?-NocoBase然而,在各行各业中,BPM面临着各自独特的挑战。在教育领域,优化招生管理流程和提升学生满意度是关键;制造业则需应对复杂的供应链和生产调度的挑战;金融服务行业强调实......
  • IPD流程体系:IPD在硬件产品开发中的应用
    目录1、内容简介2、开发各阶段介绍3、PVT阶段4、资源群更新作者简介1、内容简介在硬件类相关产品的开发过程中,每个阶段的工作都是需要按照一定的流程、规范和标准去进行的。整体还是相对瀑布化的流程,每个阶段的输入、输出、准入、准出标准也都很明确。也就是说,硬件类产品相对更容易......
  • 03 Java流程控制
    一、顺序结构前面学的就是顺序结构二、分支结构1.if分支根据条件(真或假)来决定执行某段代码if(条件){},()后不能跟“;”,否则{}中的代码将不受if的控制如果if语句的{}中只有一行代码的情况,{}可以省略不写(但是不推荐省略)1.1 if分支的三种形式①if(条i按表达式){   代......
  • NodeRed+UIOTOS绝配!流程连线搭建上位机 一
    介绍NodeRed:后端低代码,用于协议接入、边缘计算采集。UIOTOS:前端零代码,用于组态绘图、UI表单、界面交互。 作为低代码的一个成功典范,NodeRed如今在IoT物联网、工业互联网、自动化等领域势不可挡,甚至引起了流程编辑的浪潮。nodered节点编辑尽管在协议对接、边缘计算上......
  • NodeRed+UIOTOS绝配!流程连线搭建上位机 一
    介绍NodeRed:后端低代码,用于协议接入、边缘计算采集。UIOTOS:前端零代码,用于组态绘图、UI表单、界面交互。作为低代码的一个成功典范,NodeRed如今在IoT物联网、工业互联网、自动化等领域势不可挡,甚至引起了流程编辑的浪潮。nodered节点编辑尽管在协议对接、边缘计算上,NodeRed是扛把子,......
  • 深度解析APS系统异常预警处理:从识别到解决的全流程策略
    订单发生变更当企业接收到产品加工订单发生变更的通知时,立即启动快速响应机制。包括指派专人负责跟进此事,并确保该信息能够迅速传递到所有相关部门和人员。同时,直接访问APS(高级计划与排程)系统,准备对受影响的订单进行详细审查。1.确认变更在APS系统中,详细检查发生变更的订单信......
  • AI工人操作行为流程规范识别方案 YOLOv7
    AI工人操作行为流程规范识别系统利用高清监控摄像头覆盖现场作业区域,AI工人操作行为流程规范识别系统通过图像识别和深度学习技术对作业人员的操作行为进行实时分析。AI工人操作行为流程规范识别系统能够准确识别工人的操作行为是否符合作业标准规定的流程和合规SOP,并根据设定......
  • tmpspring流程
    spring流程AbstractApplicationContext.refresh()1、创建beanFactory{1、newDefaultListableBeanFactory(null)2、给beanFactroy设置一堆属性组件供以后使用3、设置beanFactory的autowireCandidateResolver,beanFactory.setAutowireCandidateResolver(newQualifierAnnotat......
  • 《深度学习》卷积神经网络CNN 原理及其流程解析
    目录一、CNN图像原理1、了解图像的原理2、举例二、CNN图像识别1、画面不变性2、主要表现    1)平移不变性    2)尺度不变性    3)旋转不变性3、传统神经网络识别    1)数据预处理    2)特征提取    3)搭建神经网络模型......
  • 04. 流程控制
    一、流程控制  流程控制就是用来控制程序运行中各语句执行顺序的语句。基本的流程结构为:顺序结构,分支结构(或称选择结构),循环结构。顺序结构:程序自上到下执行,中间没有任何判断和跳转;分支结构:根据条件,选择性的执行某段代码,有if……else和switch……case两种分支语句;循环结......