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來管理各個包的需要用到的版本。