Spring Boot 入门学习(二)探究Hello SpringBoot wed项目
1.导入
在Spring Boot 入门学习(一)Spring Boot 特征及快速创建web项目中我们已经光速创建了基于Spring Boot的web项目,相比于之前的Spring MVC 可以说是极大地程序员从各种配置文件中解放出来。通过这篇文章来探究一下,Spring Boot是怎么做到的。
2.pom文件里秘密
首先这个web项目是一个Maven项目,所以有必要看下这个Spring Boot项目都导入了哪些依赖。
pom文件如下:
<?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"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 父项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- 项目描述 -->
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<!-- Java版本 -->
<properties>
<java.version>1.8</java.version>
</properties>
<!-- 导入的依赖 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<!-- 这个插件,可以将应用打包成一个可执行的jar包 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.1 父级项目
pom文件中有parent标签,这是项目的父级项目。光标放在spring-boot-starter-parent,按住Ctrl键,进入spring-boot-starter-parent-***.pom,在这个pom文件中有spring-boot-starter-parent,项目的父级项目。
再点击进入,有个项目叫spring-boot-dependencies项目,且这个项目没有父级项目。在这个pom文件中指定了各个依赖的版本。
所以,总结来说:spring-boot-dependencies真正管理着Spring Boot项目的依赖的版本。是Spring Boot的版本的仲裁中心。导入的依赖默认是不需要写版本的。但是,没有在dependencies中管理的依赖依然是需要声明版本的。
2.2 导入的依赖
在pom文件中,可以看到,项目导入了spring-boot-starter-web。这是一个web场景启动器。
进入这个启动器,可以发现这里有个tomcat的依赖。这就是为什么这个项目你明明没有配置web容器,却能成功地通过浏览器进行访问。因为这些基本的常规操作Spring Boot都替你做好了。
spring-boot-starter:Spring Boot的场景启动器。Spring Boot将所有功能的场景都抽取出来,做成一个个starter(启动器)。只需要在项目中引入这些starter,就可以就这个启动器的依赖都导入进来。
3.总结
通过这个超级简单的web项目,印证了Spring Boot官网对Spring Boot的描述。你需要做的就是just run 。因为Spring Boot的重要思想“约定大于配置”。
转载:https://blog.csdn.net/baidu_38645830/article/details/105459915