Starters
Starters是一组方便的依赖描述符,您可以在应用程序中包含这些描述符。您可以获得所需的所有Spring和相关技术的一站式服务,而无需搜索示例代码和复制粘贴依赖描述符的负载。例如,如果要开始使用Spring和JPA进行数据库访问,请在项目中包含spring-boot-starter-data-jpa
依赖项。
starters减少了我们开发时需要搜索依赖哪些包的时间。springboot提供了很多starters。
- spring-boot-starter:核心启动器,包括自动配置支持,日志记录和YAML
- spring-boot-starter-aop:使用Spring AOP和AspectJ进行面向方面编程的入门者
- spring-boot-starter-data-jdbc:使用Spring数据JDBC的入门者
- spring-boot-starter-web:使用Spring MVC构建Web(包括RESTful)应用程序的入门者。使用Tomcat作为默认嵌入式容器
看一下web-starter
maven的parent标签:为了抽取统一的配置信息和依赖版本控制,方便子POM直接引用,简化子POM的配置。
spring-boot-starter-web,可以看到这里定义了具体的依赖。
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starters</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.3.RELEASE</version>
<name>Spring Boot Web Starter</name>
<!-- 删掉了一些 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.1.3.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
<version>2.1.3.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.1.3.RELEASE</version>
<scope>compile</scope>
</dependency>
<!-- 省略 -->
</dependencies>
</project>
进入spring-boot-starters
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath>../spring-boot-parent</relativePath>
</parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starters</artifactId>
<version>2.1.3.RELEASE</version>
<packaging>pom</packaging>
packaging用于定义maven的打包方式,packaging默认类型为jar,如果需要继承或者聚合需要将packaging设置为pom。
spring-boot-starters的父项目也没啥看的。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath>../spring-boot-dependencies</relativePath>
</parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>2.1.3.RELEASE</version>
<packaging>pom</packaging>
继续到spring-boot-dependencies里看,这里使用了dependencyManagement来管理各个包的需要用到的版本。