Spring Boot入門(三)起步依賴
阿新 • • 發佈:2018-12-11
Spring Boot起步依賴的功能:開發者只需指定功能,構建過程自動分析使用者需求,引入相關依賴
起步依賴本質上是一個Maven專案物件模型(Project Object Model,POM),定義了對其他庫的傳遞依賴,通過依賴疊加,實現功能支援,因此很多依賴的命令都暗示了他們所提供的特定功能。 例如,你打算做一個web應用,有兩種選擇:一種是傳統的向專案構建檔案裡新增一堆單獨的庫依賴;另一種,則是宣告這個一個web應用程式,只需新增web起步依賴即可。 若想使用Thymeleaf為Web檢視,用JPA來實現資料持久化,對應用程式進行測試,也可匯入Thymeleaf、Spring Data JPA和Spring Boot的test的起步依賴。
自定義依賴如何覆蓋起步依賴
以Spring Boot的web起步依賴為例,它傳遞了Jackson JSON庫,若你不想使用Jackson想將其從依賴中移除該怎麼做呢? 若使用Gradle,可以通過exclude group進行依賴移除:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> </exclusion> </exclusions> </dependency>
另外,若專案需要使用另一個版本的Jackson(非Spring Boot依賴傳遞所提供的)來進行構建,在Maven中,可直接在pom.xml中表達:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</atrifactId>
<version>2.4.3</version>
</dependency>
Maven會使用最近的依賴,也就是說,你在專案構建說明檔案裡增加的這個依賴,會覆蓋傳遞依賴引入的另一個依賴。 若使用Gradle,可以在build.gradle檔案裡指明你要的Jackson版本:
compile("com.fasterxml.jackson.core:jackson-databind:2.4.3")
注意:Gradle傾向使用庫的最新版本,就是說若你使用的jackson版本要老於Spring Boot提供的版本,則不得不把web起步依賴中Spring Boot提供的版本剔除掉:
compile("org.springframework.boot:spring-boot-starter-web") {
exclude group: 'com.fasterxml.jackson.core'
}
compile("com.fasterxml.jackson.core:jackson-databind:2.3.1")
參考文獻:Spring Boot實戰 ,丁雪豐 (譯者)