springboot自动配置原理-面试题
网络上看很多文章并没什么用,重点没说到,不知道从那里入手讲,刷到的直接按照下面这个,背出来就行了
1、当启动springboot应用程序的时候,会先创建SpringApplication的对象,在对象的构造方法中会进行某些参数的初始化工作,最主要的是判断当前应用程序的类型以及初始化器和监听器,在这个过程中会加载整个应用程序中的spring.factories文件,将文件的内容放到缓存对象中,方便后续获取。
2、SpringApplication对象创建完成之后,开始执行run方法,来完成整个启动,启动过程中最主要的有两个方法,第一个叫做prepareContext,第二个叫做refreshContext,在这两个关键步骤中完整了自动装配的核心功能,前面的处理逻辑包含了上下文对象的创建,banner的打印,异常报告期的准备等各个准备工作,方便后续来进行调用。
3、在prepareContext方法中主要完成的是对上下文对象的初始化操作,包括了属性值的设置,比如环境对象,在整个过程中有一个非常重要的方法,叫做load,load主要完成一件事,将当前启动类做为一个beanDefinition注册到registny中,方便后续在进行BeanFactoryPostProcessor调用执行的时候,找到对应的主类,来完成@SpringBootApplicaiton,@EnableAutoConfiguration等注解的解析工作
4、在refreshContext方法中会进行整个容器刷新过程,会调用中spring中的refresh方法,refresh中有13个非常关键的方法,来完成整个spring应用程序的启动,在自动装配过程中,会调用invokeBeanFactoryPostProcessor方法,在此方法中主要是对ConfigurationClassPostProcessor类的处理,这次是BFPP的子类也是BDRPP的子类,在调用的时候会先调用BDRPP中的postProcessBeanDefinitionRegistry方法,然后调用postProcessBeanFactory方法,在执行postProcesseanDefinitionRegistry的时候回解析处理各种注解,包含@PropertySource,@ComponentScan,@ComponentScans,@Bean,@Import等注解,最主要的是@lmport注解的解析
5、在解析@lmport注解的时候,会有一个getlmports的方法,从主类开始递归解析注解,把所有包含@Import的注解都解析到,然后在processlmport方法中对lmport的类进行分类,此处主要识别的时候AutoConfigurationlmportSelect归属于lmportSelect的子类,在后续过程中会调用deferredlmportSelectorHandler中的process方法,来完整EnableAutoConfiguration的加载.
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
springboot自动配置原理-面试题
网络上看很多文章并没什么用,重点没说到,不知道从那里入手讲,刷到的直接按照下面这个,背出来就行了 1、当启动springboot应用程序的时候,会先创建SpringApplication的对象,在对象的构造方法中会进行某些参数…...
![](https://i-blog.csdnimg.cn/direct/fcdf2625006c43e1930579d0676bce39.png)
【C++题解】1140 - 亲密数对
欢迎关注本专栏《C从零基础到信奥赛入门级(CSP-J)》 问题:1140 - 亲密数对 类型:自定义函数 题目描述: 键盘输入 N ,N 在 2 至 2000 之间,求 2 至 N 中的亲密数对,就是 A 的因子和…...
![](https://i-blog.csdnimg.cn/direct/f27b63837402461eb61f33fd93cb9a8d.png)
学习大数据DAY40 基于 hive 的数据处理
目录 Hive 复合数据定义方法 Hive 复合数据查询方法 hive 内置函数 上机练习 Hive 复合数据定义方法 Hive 复合数据查询方法 hive 内置函数 -- 查看系统自带的函数 show functions; -- 显示自带的函数的用法 desc function upper; -- 详细显示自带的函数的用法 desc …...
![](https://i-blog.csdnimg.cn/direct/af7d879e600249dfb8bf4f93f807e543.png)
[数据集][目标检测]手钳检测数据集VOC+YOLO格式141张1类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):141 标注数量(xml文件个数):141 标注数量(txt文件个数):141 标注类别…...
![](https://i-blog.csdnimg.cn/direct/d98f69485db64366b2ac639045d8d7e7.png)
SQL注入(head、报错、盲注)
目录 【学习目标、重难点知识】 【学习目标】 【重难点知识】 1. 报错注入 1.1 那么什么是报错注入呢? 1.2 报错注入原理 extractvalue函数 updatexml函数 1.3 靶场解析 靶场练习 2. HEAD注入 2.1 相关全局变量 2.2 靶场解析 burp暴力破解 靶场练习 3…...
![](https://www.ngui.cc/images/no-images.jpg)
30. 包含 min 函数的栈
comments: true difficulty: 简单 edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9830.%20%E5%8C%85%E5%90%ABmin%E5%87%BD%E6%95%B0%E7%9A%84%E6%A0%88/README.md 面试题 30. 包含 min 函数的栈 题目描述 定义栈的数据结构ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
五、OpenTK图形渲染基础
文章目录 一、顶点数据(一)顶点坐标、颜色、纹理坐标的定义(二)顶点数组的组织二、图元绘制(一)点列表、线列表、线带、三角形列表、三角形带的绘制(二)绘制模式(GL_POINTS、GL_LINES、GL_TRIANGLES 等)三、清除屏幕一、顶点数据 (一)顶点坐标、颜色、纹理坐标的定…...
![](https://img-blog.csdnimg.cn/img_convert/40e2061c1764b82dfede63b2649aba5e.jpeg)
桔子哥/基于云快充协议1.5版本的充电桩系统软件-充电桩系统 -新能源车充电平台源码
基于云快充协议1.5版本的充电桩系统软件 介绍 SpringBoot 框架,充电桩平台充电桩系统充电平台充电桩互联互通协议云快充协议1.5-1.6协议新能源汽车二轮车公交车二轮车充电-四轮车充电充电源代码充电平台源码Java源码 软件功能 小程序端:城市切换、附…...
![](https://i-blog.csdnimg.cn/direct/6663e082d68946eebb203090684bd61a.png)
零基础5分钟上手亚马逊云科技-高可用Web系统设计最佳实践
简介: 欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列,适用于任何无云计算或者亚马逊云科技技术背景的开发者,通过这篇文章大家零基础5分钟就能完全学会亚马逊云科技一个经典的服务开发架构方案。 我会每天介绍一个基于亚马逊云科技…...
![](https://i-blog.csdnimg.cn/direct/cc6af7fd25084f96bb30c08a59bf867f.png#pic_center)
培训学校课程管理系统-计算机毕设Java|springboot实战项目
🍊作者:计算机毕设匠心工作室 🍊简介:毕业后就一直专业从事计算机软件程序开发,至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长:按照需求定制化开发项目…...
![](https://www.ngui.cc/images/no-images.jpg)
基于STM32的智能婴儿床控制系统设计(手机APP+蓝牙无线控制)(210)
文章目录 一、前言1.1 项目介绍【1】项目功能介绍【2】设计实现的功能【3】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】HC05工作模式配置1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】项目背景【5】摘要1.4 开发工具的选择【1】设备端开发【2】上…...
![](https://i-blog.csdnimg.cn/direct/6991957dd0084a1a949206a8ebdbdd35.png)
四、前后端分离通用权限系统(4)
🌻🌻 目录 一、前端开发和前端开发工具1.1、前端开发介绍1.2、下载和安装 VS Code1.2.1、下载地址1.2.2、插件安装1.2.3、创建项目1.2.4、保存工作区1.2.5、新建文件夹和网页1.2.6、预览网页1.2.7、设置字体大小 二、Node.js2.1、Node.js 简介2.1.1、什么…...
![](https://i-blog.csdnimg.cn/direct/c93bde5444cf4af2870ff795db5f1fad.png)
时序预测|基于贝叶斯BO-卷积-双向门控单元-注意力机制的单变量时间序列预测模型BO-CNN-BiGRU-Attention
时序预测|基于贝叶斯BO-卷积-双向门控单元-注意力机制的单变量时间序列预测模型BO-CNN-BiGRU-Attention 文章目录 前言时序预测|基于贝叶斯BO-卷积-双向门控单元-注意力机制的单变量时间序列预测模型BO-CNN-BiGRU-Attention 一、BO-CNN-BiGRU-Attention模型1. 贝叶斯优化&#…...
![](https://i-blog.csdnimg.cn/direct/05de0469625f4cde95d6065c6403c573.png)
计算机毕业设计PySpark+Flask bilibili弹幕情感分析 B站视频数据可视化 B站爬虫 机器学习 深度学习 NLP自然语言处理 大数据毕业设计
### 开题报告:基于PySpark和Flask的B站弹幕情感分析系统 #### 一、研究背景 在网络视频平台的用户互动中,弹幕(Danmaku)作为一种实时评论的形式,已经成为观众表达观点和情感的重要方式。尤其是在B站(哔哩…...
![](https://i-blog.csdnimg.cn/direct/04f52ee6c5a043be8f7a944da133b723.png#pic_center)
点击展开详细说明网站html引导页源码
点击展开详细说明网站html引导页源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面 https://download.csdn.net/download/huayula/89…...
![](https://i-blog.csdnimg.cn/direct/c52e606abe214ab383dd2ad376852a75.png)
Android 架构模式之 MVP
目录 架构设计的目的对 MVP 的理解代码ModelViewPresenter Android 中 MVP 的问题试吃个小李子ModelViewPresenter 大家好! 作为 Android 程序猿,你有研究过 MVP 架构吗?在开始接触 Android 那一刻起,我们就开始接触 MVC 架构&am…...
![](https://i-blog.csdnimg.cn/direct/fe4ec4dfd4d14a298a6198585949a89b.png)
Ciallo~(∠・ω・ )⌒☆第二十二篇 入门request请求库使用
请求库是用于发送HTTP请求的工具。常见的请求库有requests,它是一个功能强大且易于使用的HTTP库。 使用requests库发送GET请求: import requests url "https://httpbin.org/get"# 携带get请求参数 params {"pn": 10,"size&q…...
![](https://i-blog.csdnimg.cn/direct/5bdef1dcd40f43a1806d8e4c87ec7947.png)
设计模式-创建型模式-原型模式
1.原型模式定义 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象; 1.1 原型模式优缺点 优点 当创建一个新的对象实例较为复杂时,使用原型模式可以简化对象的创建过程,通过复制一个已有的实例…...
![](https://i-blog.csdnimg.cn/direct/78afbaed18124cdfa866558009b0a46a.png#pic_center)
遗传算法与深度学习实战(7)——使用遗传算法解决N皇后问题
遗传算法与深度学习实战(7)——使用遗传算法解决N皇后问题 0. 前言1. N 皇后问题2. 解的表示3. 遗传算法解决 N 皇后问题小结系列链接 0. 前言 进化算法 (Evolutionary Algorithm, EA) 和遗传算法 (Genetic Algorithms, GA) 已成功解决了许多复杂的设计…...
![](https://i-blog.csdnimg.cn/direct/e3c5309675614fbf9c317630ba51b823.png)
R语言:如何安装包“linkET”
自己在R语言中安装包“linkET”时报错不存在叫‘linket’这个名字的程辑包 尝试了install.packages("linkET")和BiocManager::install("linkET")两种安装办法都不行 >install.packages("linkET") WARNING: Rtools is required to build R pa…...
![](https://i-blog.csdnimg.cn/direct/46a032f16c654b10871593f5f7152989.png)
JSON, YAML, XML, CSV交互可视化
1、jsoncrack https://jsoncrack.com/editor...
![](https://www.ngui.cc/images/no-images.jpg)
Android UI:PopupWindow:源码分析:设置WindowManager.LayoutParams中的各种参数
文章目录 设置flags是否包含某些flag设置gravity设置type设置softInputMode设置windowAnimations设置width/height设置token 在WindowManager.addView之前设置在WindowManager.addView之后,可通过i熬夜难过update方法设置设置format设置flags是否包含某些flag 1666 …...
![](https://www.ngui.cc/images/no-images.jpg)
MySQL:从入门到放弃
基础查询 MySQL:基础查询 Mybatis:基础巩固-DDL 项目实战 MySQL:按照日期分组查询 查询开始时间与结束时间在指定的日期范围之内,并且结束时间可以为NULL的数据...
![](https://i-blog.csdnimg.cn/direct/3819bd3681484d76bd5725c1ac194fa5.png)
C++OpenGL三维显示镜面反射光线漫反射实例
程序示例精选 COpenGL三维显示镜面反射光线漫反射实例 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《COpenGL三维显示镜面反射光线漫反射实例》编写代码,代码整洁,…...
![](https://www.ngui.cc/images/no-images.jpg)
【前端面试】从npm 升级到 pnpm的总结
pnpm优势 pnpm 和 npm 在性能上存在一些明显的差异,这也是一些开发者选择从 npm 切换到 pnpm 的原因。以下是一些关键的差异和原因: 1. 速度: pnpm 比 npm 快了近 2 倍,它通过优化的依赖管理,显著提高了安装速度 。 2. 磁盘空间效率: pnpm 使用基于内容寻址的文件系…...
![](https://www.ngui.cc/images/no-images.jpg)
同步外网YUM源-3
在企业实际应用场景中,仅仅靠光盘里面的RPM软件包是不能满足需要,我们可以把外网的YUM源中的所有软件包同步至本地,可以完善本地YUM源的软件包数量及完整性。 获取外网YUM源软件常见方法包括Rsync、Wget、Reposync,三种同步方法的区别Rsync方式需要外网YUM源支持RSYNC协议…...
![](https://i-blog.csdnimg.cn/direct/ed9b928019ca4146a33d73c7e7d3fb30.png)
Linux的oracle数据库导入其他用户导出的数据库文件
如果用户使用的是expdp的命令,导入就要使用impdp命令,本文以impdp为例进行介绍 1、查看当前创建的所有dmp导出目录 select * from dba_directories 2、为创建的目录赋权限 比如咱们将数据库导入到test用户, grant read,write on directo…...
![](https://img-blog.csdnimg.cn/img_convert/843c1942c793072dc1be3997f082e6e4.png)
FLUX.1 文生图模型微调指南
FLUX.1 是 Black Forest Labs 今年夏天发布的文本转图像模型系列。FLUX.1 模型为开源图像生成模型树立了新标准:它们可以生成逼真的手、清晰的文本,甚至可以生成搞笑表情包这样异常困难的任务。 现在,你可以使用 Ostris 的 Replicate 上的 A…...
![](https://www.ngui.cc/images/no-images.jpg)
JavaWeb基础:HTTP协议与Tomcat服务器
目录 1. HTTP协议简介 示例代码:创建HTTP GET请求 2. Tomcat服务器介绍 Tomcat的基本操作 示例代码:部署简单Servlet 3. 使用Servlet处理请求 示例代码:处理POST请求 在现代网络开发中,理解HTTP协议和如何使用Tomcat作为服…...
![](https://i-blog.csdnimg.cn/direct/811edff1994d49baa5462efd4e462c2a.png)
python井字棋游戏设计与实现
python实现井字棋游戏 游戏规则,有三个井字棋盘,看谁连成的直线棋盘多谁就获胜 棋盘的展现形式为 棋盘号ABC和位置数字1-9 输入A1 代表在A棋盘1号位数下棋 效果图如下 部分源码如下: 卫星工纵浩 白龙码程序设计,点 代码获取 …...
![](https://img-blog.csdnimg.cn/20181216121229960.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Nvbmd6ZWhhbw==,size_16,color_FFFFFF,t_70)
桂林网站建设官网/搜索引擎优化的方法有哪些
Kettle8.1版本,准备好正确的xml和xsl文件,再配置好如下流程,转换报错: net.sf.saxon.trans.XPathException:org.xml.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog. 该问题是Kettle8.1的…...
![](https://img-blog.csdnimg.cn/img_convert/55a2638139d68369d49b3058cd5d88e8.png)
在wordpress上添加播放视频教程/杭州百度公司在哪里
手机型号云服务器 内容精选换一换如果对弹性云服务器执行重启/关机操作,弹性云服务器长时间(大于30分钟)处于“正在重启”/“正在关机”状态时,建议执行强制重启/强制关机操作。登录管理控制台。单击管理控制台左上角的,选择区域和项目。选择…...
![](http://image20.it168.com/201410_800x800/1998/c276878097c330f9.jpg)
厦门做商城网站/东莞网络优化哪家公司好
本文讲的是众信金融开设债权转让增加用户理财热情,余额宝自横空出世以来,仅半年多时间便打造出网民投身互联网理财的热潮,除享受远高于银行的年化收益外,深受网民喜爱的还有一条便是“T0”赎回,恰恰满足投资者对产品流动性的需求。…...
![](/images/no-images.jpg)
讨论致同国际网站建设情况/企业宣传方式
每一个函数的对象都有一个length,表示该函数期望接收到的参数格式,他与函数的arguments不同,arguments.length表示函数实际接收到的参数格式。 <script type"text/javascript">function add(num1,num2,num3){}alert(add.len…...
![](/images/no-images.jpg)
制作网络游戏/网站seo推广方案
Oracle Application配置移植工具在ARP中的应用Oracle Migration Tools Introduce卢景秀摘要:ARP的所级部分主要是在ORACLEERP的基础上构架完成的。在我们的日常维护中,经常碰到因为需求变更,系统发生改变的情况,通常的做法是在一个…...
![](https://img-blog.csdnimg.cn/20200102010003942.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxMjM3NTQ5,size_16,color_FFFFFF,t_70)
做的网站访问速度慢/小程序模板
2020第一天,装完了电脑,现在电脑能亮了,但是没有系统。其实接下来的步骤通过百度就可以按步就班完成 . 直接百度搜索win10软件下载,打开windows10官网就行,在这里顺便贴上地址 https://www.microsoft.com/zh-cn/softwa…...