簡體   English   中英

使用 Spring Boot 啟動器的更好方法

[英]Better way of using spring boot starters

我找到了兩種為 spring boot rest 服務應用程序添加依賴項的方法。

方法一:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
    </dependency>

方法二:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

上面給出的兩種方法都做同樣的工作? 性能上有什么區別嗎?

提前致謝

這些方法之間的區別在於spring-boot-starter-web包含更多的依賴項,而不僅僅是spring-boot-starterspring-web

對於 1.5.8.RELEASE 版本,它將是:

  • 彈簧啟動器
  • spring-boot-starter-tomcat
  • 休眠驗證器
  • 傑克遜數據綁定
  • 彈簧網
  • 彈簧-webmvc

所有其他的東西取決於你的要求。 例如,如果您正在開發商業產品,您必須檢查其許可證的所有包含的傳遞依賴項。

一般建議是僅使用您需要的功能。 不要忘記,您仍然可以依賴頂級工件,不包括使用 Maven 功能的不需要的部分。

在性能提升方面,基本上應該不會那么多。 區別僅在於 Spring(具有頂級工件依賴項)將加載並自動配置一些在您的代碼中實際上未使用的功能(在類路徑掃描期間)。 出於同樣的原因,啟動時間可能會略有增加。

希望能幫助到你!

顯然第二種方法更好,即使用 springboot starter pom。

我這么說的原因如下:-

  1. 它允許zero configurationauto configuration即默認情況下將向您提供大多數與 Web 相關的設置。 例如默認情況下將集成 tomcat 服務器,將為您添加 springboot 依賴項,自動注冊轉換器和其他與 Web 相關的依賴項等。請參閱鏈接。

  2. 您可以利用簡單的覆蓋,即如果明天您想使用 jetty 代替 tomcat,只需添加 jetty 依賴項及其配置,現在您可以使用 jetty。

  3. 你的pom.xml會更整潔,更易讀,因為更少。 依賴項被放入其中並從 starter poms 中挑選。

  4. 輕松的兼容性管理。 默認情況下,spring-boot 選擇starter parent的版本。 因此,您可以放心,所有兼容的依賴項都將作為 mvn 依賴項的一部分下載,如果您特別想升級其中任何一個,則可以。 但這可以通過更改 springboot starter parent 的版本來升級到兼容的依賴項(注意:您也可以使用依賴項管理來代替 starter parent pom。請參閱鏈接)。

在性能方面會有一個折衷,因為 springboot 默認下載比最初所需的最小值更多的依賴項。 但是隨着應用程序開始變得成熟,大多數這些依賴項無論如何都會被使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM