| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Spring Boot进阶(二)SpringBoot源码剖析 -> 正文阅读 |
|
[Java知识库]Spring Boot进阶(二)SpringBoot源码剖析 |
一. SpringBoot源码环境构建(一)下载源码1. 官网下载2. 百度网盘下载
链接:
https://pan.baidu.com/s/1mhJJlP4ZezggIL_Z2bvizQ
提取码:8888 (二)环境准备
1
、
JDK1.8以上
2
、
Maven3.5以上
(三)编译源码
进?
spring-boot
源码根?录
执?
mvn
命令
:
mvn clean install -DskipTests -Pfast
//
跳过测试?例,会下载?量
jar
包(时
间会长一些)
(四)导入IDEA将编译后的项目导入IDEA中 ?打开pom.xml关闭maven代码检查 二. SpringBoot依赖管理源码剖析(一)spring-boot-starter-parent 依赖源码剖析
上述代码中,将
spring-boot-starter-parent
依赖作为
Spring Boot
项目的统一父项目依赖管理,并
将项目版本号统一为
2.2.9.RELEASE
,该版本号根据实际开发需求是可以修改的。
使用
“Ctrl+
鼠标左键
”
进入并查看
spring-boot-starter-parent
底层源文件,先看
spring-boot
starter-parent
做了哪些事。
首先看
spring
-
boot
-
starter
-
parent
的
properties
节点:
在这里
spring
-
boot
-
starter
-
parent
定义了:
1.
工程的
Java
版本为
1.8
。
2.
工程代码的编译源文件编码格式为
UTF
-
8
3.
工程编译后的文件编码格式为
UTF
-
8
4. Maven
打包编译的版本
再来看
spring
-
boot
-
starter
-
parent
的「
build
」节点
接下来看
POM
的
build
节点,分别定义了
resources
资源和
pluginManagement
我们详细看一下
resources
节点,里面定义了资源过滤,针对
application
的
yml
、
properties
格
式进行了过滤,可以支持支持不同环境的配置,比如
application
-
dev.yml
、
application
-
test.yml
、
application
-
dev.properties
、
application
-
dev.properties
等等。
pluginManagement
则是引入了相应的插件和对应的版本依赖
最后来看
spring-boot-starter-parent
的父依赖
spring
-
boot
-
dependencies
spring-boot-dependencies
的
properties
节点
我们看定义
POM
,这个才是
SpringBoot
项目的真正管理依赖的项目,里面定义了
SpringBoot
相关的版本
spring-boot-dependencies
的
dependencyManagement
节点
在这里,
dependencies
定义了
SpringBoot
版本的依赖的组件以及相应版本。
spring
-
boot
-
starter
-
parent
通过继承
spring
-
boot
-
dependencies
从而实现了
SpringBoot
的版本依
赖管理
,
所以我们的
SpringBoot
工程继承
spring-boot-starter-parent
后已经具备版本锁定等配置了
,
这也就是在
Spring Boot
项目中
部分依赖
不需要写版本号的原因
(二)spring-boot-starter-web 依赖源码剖析查看spring-boot-starter-web依赖文件源码,核心代码具体如下
从上述代码可以发现,
spring-boot-starter-web
依赖启动器的主要作用是打包了
Web
开发场景所需的底层所有依赖(基于依赖传递,当前项目也存在对应的依赖
jar
包)
正是如此,在
pom.xml
中引入
spring-boot-starter-web
依赖启动器时,就可以实现
Web
场景开发,而不需要额外导入
Tomcat
服务器以及其他
Web
依赖文件等。
当然,这些引入的依赖文件的版本号还是由
spring-boot-starter-parent
父依赖进行的统一管理。
Spring Boot
除了提供有上述介绍的
Web
依赖启动器外,还提供了其他许多开发场景的相关依赖,
我们可以打开
Spring Boot
官方文档,搜索
“Starters”
关键字查询场景依赖启动器
列出了
Spring Boot
官方提供的部分场景依赖启动器,这些依赖启动器适用于不同的场景开发,使用时只需要在
pom.xml
文件中导入对应的依赖启动器即可。
需要说明的是,
Spring Boot
官方并不是针对所有场景开发的技术框架都提供了场景启动器,例如阿里巴巴的
Druid
数据源等,
Spring Boot
官方就没有提供对应的依赖启动器。为了充分利用
Spring Boot
框
架的优势,在
Spring Boot
官方没有整合这些技术框架的情况下,
Druid
等技术框架所在的开发团队主动
与
Spring Boot
框架进行了整合,实现了各自的依赖启动器,例如
druid-spring-boot-starter
等。我们在
pom.xml
文件中引入这些第三方的依赖启动器时,切记要配置对应的版本号。
三. SpringBoot执行流程源码剖析(一)源码剖析SpringBoot启动执行流程源码剖析(重点)_舞鹤白沙编码日志-CSDN博客 (二)SpringBoot执行流程中,主要功能实现的关键节点及流程总结SpringBoot执行流程中,主要功能实现的关键节点及流程总结_舞鹤白沙编码日志-CSDN博客 四. 自定义StarterSpringBoot-自定义starter_舞鹤白沙编码日志-CSDN博客 五. 源码剖析-内嵌TomcatSpringBoot-内嵌Tomcat源码剖析_舞鹤白沙编码日志-CSDN博客 ?六. 源码剖析-自动配置SpringMVC |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:28:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |