Spring Boot运行原理及功能实现方式

本文详细解析了Spring Boot的启动过程,包括启动器starter的作用、启动引导类的运行方式、@SpringBootApplication注解的功能,以及内置Tomcat服务器的工作原理和如何修改或更换服务器。通过了解这些,有助于深入理解Spring Boot的运行机制和简化配置的方式。
摘要由CSDN通过智能技术生成

前言

我们在使用SpringBoot程序开发的时候会发现比Spring程序编写起来容易的多。配置简洁,依赖关系简单,启动运行容易。那么接下来我们我们就要思考一下这些功能是怎么实现的, 这也是面试中的常见问题,务必掌握!

接下来我们从以下几个方面着手研究

  • SpringBoot的启动依赖

  • 启动器starter有什么作用

  • 启动引导类是怎么运行的

  • 内置的tomcat服务器原理

  • pom.xml文件分析

我们应用配置第一个就是依赖,这个依赖的作用到底是什么我们仔细来分析一下。

  1. 项目中的pom.xml中继承了一个坐标

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.3</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

注意:这里parent的坐标被工程继承了,相当于这是一个父类,我们创建的工程是一个子类,用到了父类的东西。

  1. 打开 spring-boot-starter-parent 之后,发现他又继承了一个坐标。

  1. 继续打开 spring-boot-dependencies 之后,发现该文件中主要定义了两组信息,分别是各种依赖的版本号和所有依赖的坐标信息,并对声明的版本号做了一个引用。我们打开发现这里有两千多行,所有能配置的版本基本都包含了。

  1. 由于Spring Boot工程使用到了maven的聚合工程,所以这里我们可以认为 spring-boot-dependencies 就是父工程,子工程就是我们自己的项目。当我们子工程中使用 继承父类之后,所有的版本就都由父类决定了。

可以看到子工程当中我们没有声明版本号,是因为所有的版本都由父类决定,这样做的好处是什么: 解决了版本冲突。不同模块、不同功能之间使用的版本是不一样的 ,因此spring boot就为我们将所有的版本统一化了。

启动器starter

Spri

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值