紧接着上一个教程博客(Spring Boot教程一 )Spring Boot入门(简介,一个HelloWorld项目构建、内部原理分析)。上一篇博客我们编辑了项目的pom.xml文件,并在编写项目的时候为类、方法添加了一些注解,那么这些内容是如何在Spring Boot当中工作的呢?他们的的作用又是什么?作为一个纯新手,我表示十分好奇。接下来的内容基于网络资料和自己的理解,可能不是很官方,如果有什么地方理解不到位,希望看到的大佬帮我及时指出,谢谢。
一、关于pom.xml文件
回顾一下我们之前配置的pom.xml文件,完整版如下图。pom文件是maven项目的配置基础,包括版本号、artifactId等多个信息,它让我们的项目自动导入了很多相关的依赖,也就是我们在项目的External Library中所看见的jar包们。
在之前的HelloWorld的项目中,我们主要填充的部分是父pom、依赖组、项目构建所需依赖,即下图画框的这三个部分。其他内容皆为项目自动生成。这三个部分就足够支撑我们的项目运行起来。我们这里也会分成三部分介绍。
1、父pom:依赖管理。我们现在使用的是org.springframework.boot中的spring-boot-starter-parent作为我们的父pom,我们ctrl点击进去,发现spring-boot-starter-parent的父pom是spring-boot-dependencies。在spring-boot-dependencies的文件中,我们可以看到规定了一些依赖的版本号,也有人因此称这个文件为Spring Boot版本的仲裁中心。
但注意两点。
(1)不是这里的所有依赖都是会被引入进来的。项目具体会引入哪些依赖还是要看我们dependencies里写了什么,所以这里很多地方会报红,不要担心。
(2)如果我们需要引入的依赖这里没有出现,还是需要写版本号的。
比如,我们在项目的pom文件中引入的spring-boot-starter-web,在pring-boot-dependencies中可以看到它的完整引入,如下。
2、依赖pring-boot-starter-web。这是spring boot的web场景启动器,我们仍然打开这个文件,看到下图中的内容。如果我们的项目引入了这个依赖,就相当于我们导入了所有能使web模块正常运行的相关组件依赖,依赖版本受父pom仲裁。
这里我们有必要单独说一下starter——启动器,Spring Boot包含了很多针对于不同场景的启动器。我们在Spring Boot的官网上可以看到不同版本的Spring Boot,我们随便选择一个,查看它的Reference,如下图。