简化开发,约定大于配置,开箱即用,提供了各种默认配置来简化项目
1. 起步依赖分析
在起步依赖上,SpringBoot 帮我们管理了各个依赖的版本,使各个依赖不会出现版本冲突;另外,Spring Boot还帮我们打包了各个依赖让不用再像之前使用Spring那样导入一堆的依赖,只要引入起步依赖的坐标就可以进行web开发了,同样体现了依赖传递的用。
pom.xml 配置文件
spring-boot-dependencies
: 核心依赖在父工程spring-boot-starter-parent
中,部分坐标的版本、依赖管理、插件管理已经定义好
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
- 在spring-boot-dependencies pom文件中,可以看到该文件管理了所有依赖的版本号,解决了我们原有项目中可能存在依赖版本冲突的问题,它来真正管理SpringBoot应用里面的所有依赖版本
<properties>
<activemq.version>5.15.13</activemq.version>
<antlr2.version>2.7.7</antlr2.version>
<appengine-sdk.version>1.9.82</appengine-sdk.version>
<artemis.version>2.12.0</artemis.version>
<aspectj.version>1.9.6</aspectj.version>
<assertj.version>3.16.1</assertj.version>
<atomikos.version>4.0.6</atomikos.version>
<awaitility.version>4.0.3</awaitility.version>
<bitronix.version>2.1.4</bitronix.version>
<build-helper-maven-plugin.version>3.1.0</build-helper-maven-plugin.version>
......
</properties>
启动器
- Spring Boot将所有的功能场景都变成了一个个启动器,使用什么功能,只需要导入相应的启动器依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
- 比如引用的
spring-boot-starter-web
自动导入了所有web依赖的环境
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.3.5.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
<version>2.3.5.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.3.5.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.10.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version