1. 程式人生 > 實用技巧 >SpringBoot-簡介和優缺點分析

SpringBoot-簡介和優缺點分析

參考:

http://c.biancheng.net/view/4630.html

https://www.cnblogs.com/echola/p/10996214.html

SpringBoot是什麼?SpringBoot的優缺點有哪些?

隨著動態語言的流行(Ruby、Groovy、Scala、Node.js),Java的開發顯得格外的笨重,繁多的配置、低下的開發效率、複雜的部署流程以及第三方技術整合難度大。

在上述環境下,SpringBoot 應運而生。它使用“習慣優於配置”(專案中存在大量的配置,此外還內建一個習慣性的配置,讓你無須手動進行配置)的理念讓你的專案快速執行起來。

使用 Spring Boot 很容易建立一個獨立執行(執行 jar,內嵌
Servlet
容器)、準生產級別的基於 Spring 框架的專案,使用 Spring Boot 你可以不用或者只需要很少的 Spring 配置。

Spring Boot 核心功能

1)獨立執行的 Spring 專案

Spring Boot 可以以 jar 包的形式獨立執行,執行一個 Spring Boot 專案只需通過 java–jar xx.jar 來執行。

2)內嵌 Servlet 容器

Spring Boot 可選擇內嵌 Tomcat、Jetty 或者 Undertow,這樣我們無須以 war 包形式部署專案。

3)提供 starter 簡化Maven配置

Spring 提供了一系列的 starter pom 來簡化 Maven 的依賴載入,例如,當你使用了spring-boot-starter-web 時,會自動加入如圖 1 所示的依賴包。

4)自動配置 Spring

Spring Boot 會根據在類路徑中的 jar 包、類,為 jar 包裡的類自動配置 Bean,這樣會極大地減少我們要使用的配置。當然,Spring Boot 只是考慮了大多數的開發場景,並不是所有的場景,若在實際開發中我們需要自動配置 Bean,而 Spring Boot 沒有提供支援,則可以自定義自動配置。

5)準生產的應用監控

Spring Boot 提供基於 http、ssh、telnet 對執行時的專案進行監控。

6)無程式碼生成和 xml 配置

Spring Boot 的神奇的不是藉助於程式碼生成來實現的,而是通過條件註解來實現的,這是 Spring 4.x 提供的新特性。Spring 4.x 提倡使用 Java 配置和註解配置組合,而 Spring Boot 不需要任何 xml 配置即可實現 Spring 的所有配置。

Spring Boot的優缺點

1)優點

  • 快速構建專案。
  • 對主流開發框架的無配置整合;與其Spring生態系統(如Spring JDBC,Spring ORM,Spring Data,Spring Security等)整合非常容易
  • 專案可獨立執行,無須外部依賴Servlet容器。
  • 提供執行時的應用監控。
  • 極大地提高了開發、部署效率。
  • 雲端計算的天然整合。
  • 去除了大量的xml配置檔案
  • 簡化複雜的依賴管理

2)缺點

  • 版本迭代速度很快,一些模組改動很大。
  • 由於不用自己做配置,報錯時很難定位。
  • 網上現成的解決方案比較少。

SpringBoot的優缺點

首先學習一門語言,需要知道其優點,說道springboot,很多人只知道能簡化配置,其他的概不清楚。

優點

建立獨立的Spring應用程式

  SpringBoot可以jar包的形式進行獨立的執行,使用:java -jar xx.jar就可以成功執行專案,或者在專案的主程式中執行main函式

嵌入的Tomcat,Jetty或者Undertow,無序部署WAR檔案

  Spring 專案部署時需要我們在伺服器上部署 tomcat,然後把專案打成 war 包扔到 tomcat裡

  springboot專案不需要單獨下載Tomcat等傳統伺服器,內嵌容器,使得我們可以執行執行專案的主程式main函式,並讓專案的快速執行,另外,也降低對執行環境的基本要求,環境變數中有JDK即可。

允許通過maven來根據需要獲取starter

  Spring Boot提供了一系列的starter pom用來簡化我們的Maven依賴,通過這些starter專案就能以Java Application的形式執行Spring Boot專案,而無需其他伺服器配置

  starter pom:https://docs.spring.io/spring-boot/docs/1.4.1.RELEASE/reference/htmlsingle/#using-boot-starter

儘可能自動配置Spring

  Spring Boot提供Spring框架的最大自動化配置,大量使用自動配置,使得開發者對Spring的配置儘量減少

  Spring Boot更多的是採用 Java Config 的方式,對 Spring 進行配置。

  新建一個類,但是我不用@Service註解,也就是說,它是個普通的類,那麼我們如何使它也成為一個 Bean 讓 Spring 去管理呢?只需要@Configuration和@Bean兩個註解即可

public class TestService {
    public String sayHello () {
        return "Hello Spring Boot!";
    }
}
 
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
@Configuration
public class JavaConfig {
    @Bean
    public TestService getTestService() {
        return new TestService();
    }
}

  @Configuration表示該類是個配置類,@Bean表示該方法返回一個 Bean。這樣就把TestService作為 Bean 讓 Spring 去管理了,在其他地方,我們如果需要使用該 Bean,和原來一樣,直接使用@Resource註解注入進來即可使用,非常方便。

提供生產就緒型功能,如指標、健康檢查和外部配置

  Spring Boot提供了基於http、ssh、telnet對執行時的專案進行監控;我們可以引入 spring-boot-start-actuator 依賴,直接使用 REST 方式來獲取程序的執行期效能引數,從而達到監控的目的,比較方便。但是 Spring Boot 只是個微框架,沒有提供相應的服務發現與註冊的配套功能,沒有外圍監控整合方案,沒有外圍安全管理方案,所以在微服務架構中,還需要 Spring Cloud 來配合一起使用。

絕對沒有程式碼生成,對XML沒有要求配置

缺點

  依賴太多,一個spring boot專案就有很多M

  缺少服務的註冊和發現等解決方案

  缺少監控整合方案,安全管理方案

本文借鑑:SpringBoot的優點《深入淺出SpringBoot 2.x》