文章目錄
- Maven中引入 springboot 相關依賴的方式
- 1. 不使用版本管理(不推薦)
- 2、使用版本管理(推薦)
- 2.1 繼承 spring-boot-starter-parent
- 2.2 使用 spring-boot-dependencies + 自定義父工程
- 2.3引入 spring-framework-bom
Maven中引入 springboot 相關依賴的方式
1. 不使用版本管理(不推薦)
如果項目中沒有統一版本管理,那么每個依賴都必須顯式聲明 <version>
。
示例:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.7.4</version>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><version>2.7.4</version>
</dependency>
? 缺點: 手動指定,容易出錯,不推薦。
2、使用版本管理(推薦)
2.1 繼承 spring-boot-starter-parent
在 pom.xml 中直接繼承:
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.4</version>
</parent>
然后添加依賴時,無需再寫<version>
:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
2.2 使用 spring-boot-dependencies + 自定義父工程
如果因為公司項目有自定義父 POM,又想用 Spring Boot 的統一版本管理,可以在 <dependencyManagement>
中導入:
<dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.7.4</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>
然后添加依賴時,同樣無需再寫<version>
。
2.3引入 spring-framework-bom
有時候,項目需要單獨控制 Spring Framework 的各模塊版本,比如在某些 JDK8 項目中,想讓 Spring Framework 盡可能用最新兼容版本,這時候可以引入 spring-framework-bom,專門管理 Spring Framework 的依賴版本。
示例:
<dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-framework-bom</artifactId><version>${spring.framework.version}</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>
然后就可以像下面這樣引入 Spring Framework 的具體模塊而不用單獨寫版本:
<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId>
</dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId>
</dependency>
? 注意:
- spring-framework-bom 只管理 Spring Framework 本身(如 spring-core、spring-web、spring-context),不包括 Spring Boot 的 starter 或其他自動配置模塊。
- spring-boot-dependencies不僅管自己家的東西(上述 Spring Framework 本身),還順便幫你管好了外部合作伙伴,比如:Jackson、Tomcat、MySQL 驅動、Redis 客戶端等。