当前位置: 首页 > article >正文

JavaWeb:SpringBoot工作原理详解

一、SpringBoot优点

1.为所有Spring开发者更快的入门
2.开箱即用,提供各种默认配置来简化项目配置
3.内嵌式容器简化Web项目
4.没有冗余代码生成和XML配置的要求

二、SpringBoot 运行原理

2.1. pom.xml

spring-boot-dependencies: 核心依赖在父工程中;
springboot-boot-starter-xxx:就是spring-boot的场景启动器
spring-boot-starter-web:帮我们导入了web模块正常运行所依赖的组件;
SpringBoot将所有的功能场景都抽取出来,做成一个个的starter (启动器),只需要在项目中引入这些starter即可,所有相关的依赖都会导入进来 , 我们要用什么功能就导入什么样的场景启动器即可 ;我们未来也可以自己自定义 starter;

在这里插入图片描述

2.2. 主启动类的配置

@SpringBootApplication
public class SpringbootApplication {public static void main(String[] args) {//启动了一个服务SpringApplication.run(SpringbootApplication.class, args);}
}`

@SpringBootApplication
作用:
标注在某个类上说明这个类是SpringBoot的主配置类 , SpringBoot就应该运行这个类的main方法来启动SpringBoot应用;

SpringApplication 这个类主要做了以下四件事情:
1、推断应用的类型是普通的项目还是Web项目
2、查找并加载所有可用初始化器 , 设置到initializers属性中
3、找出所有的应用程序监听器,设置到listeners属性中
4、推断并设置main方法的定义类,找到运行的主类

三、自动配置原理(默认)

3.1查看类

在这里插入图片描述
在这里插入图片描述

3.2 实现方案

在这里插入图片描述
在这里插入图片描述

3.3源码跟踪

阅读原则:源头—返回能看懂,跳过—主线
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/2386095.html

相关文章:

  • 5.25本日总结
  • OpenGL Chan视频学习-6 How Shaders Work in OpenGL
  • dify_plugin数据库中的表总结
  • 【数据仓库面试题合集④】SQL 性能调优:面试高频场景 + 调优策略解析
  • HarmonyOS学习——UIAbility组件(上)
  • 【Linux】磁盘空间不足
  • 持续更新 ,GPT-4o 风格提示词案例大全!附使用方式
  • 线性代数之张量计算,支撑AI算法的数学原理
  • QStandardItemModel的函数和信号介绍
  • Python 内存管理机制详解:从分配到回收的全流程剖析
  • 【报错】Error attempting to get column ‘created_time‘ from result set.解决方法
  • Redis 3.0~8.0特性与数据结构全面解析
  • Google 推出 Flow —— AI 电影制作新平台
  • 跨链风云:打破区块链孤岛,实现价值自由流转
  • 鸿蒙开发:了解$$运算符
  • 基于CEEMDAN-Transformer-BiLSTM的多特征风速气候预测的完整实现方案及PyTorch源码解析
  • 特征预处理
  • 第七课 医学影像学临床研究数据管理与统计分析思路
  • 基于TypeScript的全栈待办事项应用Demo
  • obsidian 中的查找和替换插件,支持正则
  • 国际荐酒师(香港)协会亮相新西兰葡萄酒巡展深度参与赵凤仪大师班
  • 【深度学习】2. 从梯度推导到优化策略:反向传播与 SGD, Mini SGD
  • 工业软件国产化:构建自主创新生态,赋能制造强国建设
  • UART、RS232、RS485基础知识
  • AI重塑数据治理的底层逻辑
  • 基于 AI 实现阿里云的智能财务管家
  • 【成品论文】2025年电工杯数学建模竞赛B题50页保奖成品论文+matlab/python代码+数据集等(后续会更新)
  • ​​IIS文件上传漏洞绕过:深入解析与高效防御​
  • 【node.js】数据库与存储
  • leetcode2081. k 镜像数字的和-hard