【SpringBoot】SpringBoot的运行原理

 SpringBoot项目中都有一个如下的启动类。


@SpringBootApplication
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class,args);}
}

其中@SpringBootApplication是这个启动类的核心注解,在它下面又有三个子注解如下:

  1. @SpringBootConfiguration:配置当前启动类为Bean
  2. @EnableAutoConfiguration:自动扫描所有启动器依赖中的配置类。
  3. @ComponentScan:自动扫描启动类所在的包及其子包下使用了@Bean注解的类及其方法。

其中@EnableAutoConfiguration这个注解也是比较核心的。

  • @EnableAutoConfiguration 借助自己的一个子注解@Import 的帮助,将所有符合自动配置条件的 bean 定义加载到 IoC 容器。

而main中SpringApplication.run()的作用主要有两个

  1. 创建SpringApplication对象:进行相关资源的加载,解析@SpringBootApplication注解。
  2.  调用的是创建的SpringApplication对象的run方法,然后使用资源并启动Tomcat。

 下面介绍一下SpringBoot启动的全过程(部分),如下图所示。

看源码如下:

 

 

之后run方法会遍历这个List集合中的类路径信息。并反射调用类对象,完成Bean的配置。

然后就会用到我们的yml文件了

 稀里糊涂的写完了。。。。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/404722.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp 页面跳转传参:父页面监听子页面传过来的数据

父页面 监听events事件 uni.navigateTo({url: "/components/watermark-camera",events: { // 重点重点重点重点重点重点重点重点getImages(data) { // 接收子页面抛出的 getImages 事件console.log("水印相机的照片:", data)}}})子页面 const …

【Harmony OS 4.0】页面路由跳转代码示例

ets/pages/Index.ets import router from ohos.router;Entry Component struct Index {State title: string Index Page;State message: string onPageShow(): void { // 页面每次显示时触发。使用aboutToAppear页面没反应。let record router.getParams() as Record<st…

EasyExcel基本使用

EasyExcel介绍 https://github.com/alibaba/easyexcel示例 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xs…

Webrtc之SDP协议

SDP简介 SDP 最常用于 RTC 实时通话的协商过程&#xff0c;在 WebRTC 中&#xff0c;通信双方在连接阶段使用 SDP 来协商后续传输过程中使用的音视频编解码器(codec)、主机候选地址、网络传输协议等。 在实际的应用过程中&#xff0c;通信双方可以使用 HTTP、WebSocket、Data…

Linux---进程(6)---进程控制

目录 进程创建 写时拷贝 代码共享原理 写时拷贝的设计 写时拷贝原理 进程终止 信号编号 进程退出码 exit函数/_exit函数解析 进程等待 等待接口 status 父进程等待方式 阻塞等待 非阻塞等待 进程替换 进程替换接口 Shell运行规则 环境变量与进程替换 su-/su…

【Datawhale AI夏令营第四期】 浪潮源大模型应用开发方向笔记 Task04 RAG模型 人话八股文Bakwaan_Buddy项目创空间部署

【Datawhale AI夏令营第四期】 浪潮源大模型应用开发方向笔记 Task04 RAG模型 人话八股文Bakwaan_Buddy项目创空间部署 什么是RAG&#xff1a; 我能把这个过程理解为Kimi.ai每次都能列出的一大堆网页参考资料吗&#xff1f;Kimi学了这些资料以后&#xff0c;根据这里面的信息综…

C#发送邮件功能实现全面指南?有哪些方法?

C#发送邮件性能优化技巧&#xff1f;C#发信时如何设置邮件格式&#xff1f; 在现代应用程序开发中&#xff0c;发送电子邮件是一个常见的需求。无论是发送通知、警报&#xff0c;还是定期报告&#xff0c;邮件功能都是至关重要的。AokSend将详细探讨如何在C#中实现发送邮件的功…

SpringBoot教程(二十三) | SpringBoot实现分布式定时任务之xxl-job

SpringBoot教程&#xff08;二十三&#xff09; | SpringBoot实现分布式定时任务之xxl-job 简介一、前置条件&#xff1a;需要搭建调度中心1、先下载调度中心源码2、修改配置文件3、启动项目4、进行访问5、打包部署&#xff08;上正式&#xff09; 二、SpringBoot集成Xxl-Job1.…

stm32的UART重定向printf()

1配置好uart 2打开usart.c文件 3在此文件前面添加头文件 4在末尾添加重定向代码 添加的代码 /* USER CODE BEGIN 1 *///加入以下代码,支持printf函数,而不需要选择use MicroLIB //#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #if 1 //#pragma import(__use_n…

day01- Web开发介绍-HTML-CS

Web开发介绍 1 什么是web开发 Web&#xff1a;全球广域网&#xff0c;也称为万维网(www World Wide Web)&#xff0c;能够通过浏览器访问的网站。 所以Web开发说白了&#xff0c;就是开发网站的&#xff0c;例如下图所示的网站&#xff1a;淘宝&#xff0c;京东等等 那么我们…

JavaEE过滤器的创建与使用过滤器的使用场景

过滤器 Filter也称之为过滤器&#xff0c;过滤器是javaEE规范肿定义的一种技术,可以让请求到达目标servlet之前,先进入到过滤器中,在过滤器中统一进行一些拦截处理,当处理完成后,可以继续向后执行,到达目标servlet,如果配置了多个过滤器,也可以进入下一个过滤器 创建过滤器 创…

asyncua模块实现OPC UA通讯

asyncua是OPCUA的python实现&#xff0c;使用起来非常方便&#xff0c;其github地址是https://github.com/FreeOpcUa/opcua-asyncio UaExpert是OPC UA Client的GUI工具&#xff0c;当编写好server代码后并运行&#xff0c;我们可以使用UaExpert去和server进行通信。UaExpert使…

小程序使用微信支付

接入小程序需要后端进行注册&#xff0c;前端只需要调用API即可。 大概流程如下&#xff1a; 本例使用一个购买商品的例子&#xff0c;前端点击微信支付&#xff0c;后端生成一个商品订单&#xff0c;然后向微信支付系统发起请求&#xff0c;生成一个微信的预支付订单&#xff…

windows上传的文本在linux执行不了,格式转换

在windows编辑的文件脚本上传到linux里面执行不了 1.现象描述 比如在windows编辑简单的文本 2.上传到linux后执行无结果 无响应 3.编码问题 比普通文件多了with CRLF line terminators结尾格式。 cat -v 可以让隐藏的转义字符也打印中显示 4.原因windows和linux的换行符不…

数字化办公OA系统是如何运作的——办公物品领用功能拆解

数字化办公 OA 系统究竟是如何运作的呢&#xff1f;它的核心功能又是如何发挥作用的呢&#xff1f;这篇就以行政 OA 系统为例&#xff0c;从产品视角来深入探讨它是如何运作的。 简道云行政OA管理系统模板&#xff0c;可以直接查看和使用&#xff1a;https://www.jiandaoyun.co…

springboot纹理生成图片系统--论文源码调试讲解

第2章 程序开发技术 2.1 MySQL数据库 开发的程序面向用户的只是程序的功能界面&#xff0c;让用户操作程序界面的各个功能&#xff0c;那么很多人就会问&#xff0c;用户使用程序功能生成的数据信息放在哪里的&#xff1f;这个就需要涉及到数据库的知识了&#xff0c;一般来说…

地平线旭日X3开发板--使用Opencv显示CSI摄像头例程

调试过程发现旭日派无法直接用opencv的VideoCapture()调用CSI摄像头, 需要使用libsrcampy库来获取CSI摄像头图像, 但是从libsrcampy获取的摄像头图像格式是NV12,无法直接在opencv上显示或者处理, 为了能够使用opencv的API来处理图像, 需要增加NV12转化成bgr像素格式的…

springboot项目配置https安装ssl证书教程

1.将下载的ssl证书文件中的jks后缀文件放在/src/main/resource文件夹里面 2.在配置文件中&#xff08;yml后缀配置文件的格式不同&#xff09;添加如下配置即可

ensp小实验(ospf+dhcp+防火墙)

前言 今天给大家分享一个ensp的小实验&#xff0c;里面包含了ospf、dhcp、防火墙的内容&#xff0c;如果需要文件的可以私我。 一、拓扑图 二、实训需求 某学校新建一个分校区网络&#xff0c;经过与校领导和网络管理员的沟通&#xff0c;现通过了设备选型和组网解决方案&…

运维学习————nginx-入门及反向代理搭建

目录 一、简介 二、正向代理和反向代理 1、正向代理 作用 2、反向代理 作用 三、单机版nginx部署 1、查看环境 2、环境安装以及nginx安装 2.1、安装pcre 2.2、安装gzip模块需要 zlib 库 2.3、安装Nginx 3、启动测试 四、反向代理配置 一、简介 nginx [engine x] 是…