Spring Boot - 簡介



Spring Boot 是一個開源的基於 Java 的框架,用於建立微服務。它由 Pivotal 團隊開發,用於構建獨立且可用於生產環境的 Spring 應用程式。本章將向您介紹 Spring Boot,並使您熟悉其基本概念。

什麼是微服務?

微服務是一種架構,允許開發人員獨立開發和部署服務。每個執行的服務都有自己的程序,這實現了輕量級模型來支援業務應用程式。

微服務是一種架構方法,其中單個應用程式由許多小型、鬆散耦合且可獨立部署的元件或服務組成。微服務是自治的:每個微服務可以獨立開發、部署和操作,而不會影響其他服務。

在單體架構中,所有程序都作為單個服務執行,緊密耦合。微服務將應用程式分解成獨立的元件,每個元件都作為單獨的服務執行。

微服務的優勢

微服務為其開發人員提供了以下優勢:

  • 易於部署
  • 簡單的可擴充套件性
  • 與容器相容
  • 最少配置
  • 生產時間更短

什麼是 Spring Boot?

Spring Boot 為 Java 開發人員提供了一個良好的平臺,可以開發一個獨立且可用於生產環境的 Spring 應用程式,您可以直接執行。您可以透過最少的配置開始,而無需設定整個 Spring 配置。

優勢

Spring Boot 為其開發人員提供了以下優勢:

  • 易於理解和開發 Spring 應用程式
  • 提高生產力
  • 減少開發時間

目標

Spring Boot 的設計目標如下:

  • 避免在 Spring 中使用複雜的 XML 配置
  • 以更簡單的方式開發可用於生產環境的 Spring 應用程式
  • 減少開發時間並獨立執行應用程式
  • 提供一種更簡單的應用程式入門方式

為什麼要使用 Spring Boot?

您可以選擇 Spring Boot,因為它提供瞭如下所示的功能和優勢:

  • 它提供了一種靈活的方式來配置 Java Bean、XML 配置和資料庫事務。

  • 它提供強大的批處理功能並管理 REST 端點。

  • 在 Spring Boot 中,所有內容都是自動配置的;無需手動配置。

  • 它提供了基於註解的 Spring 應用程式

  • 簡化依賴管理

  • 它包含嵌入式 Servlet 容器

它是如何工作的?

Spring Boot 透過使用@EnableAutoConfiguration 註解根據您新增到專案中的依賴項自動配置您的應用程式。例如,如果 MySQL 資料庫位於您的類路徑中,但您尚未配置任何資料庫連線,則 Spring Boot 會自動配置一個記憶體資料庫。

Spring Boot 應用程式的入口點是包含@SpringBootApplication 註解和 main 方法的類。

Spring Boot 透過使用@ComponentScan 註解自動掃描專案中包含的所有元件。

Spring Boot 啟動器

對於大型專案,處理依賴管理是一項艱鉅的任務。Spring Boot 透過為開發人員提供一組依賴項來解決此問題,方便開發人員。

例如,如果您想使用 Spring 和 JPA 來訪問資料庫,只需在您的專案中包含spring-boot-starter-data-jpa 依賴項即可。

請注意,所有 Spring Boot 啟動器都遵循相同的命名模式spring-boot-starter- *,其中 * 表示應用程式的型別。

示例

檢視以下 Spring Boot 啟動器的解釋,以便更好地理解:

Spring Boot Starter Actuator 依賴項用於監控和管理您的應用程式。其程式碼如下所示:

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

Spring Boot Starter Security 依賴項用於 Spring Security。其程式碼如下所示:

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

Spring Boot Starter Web 依賴項用於編寫 Rest 端點。其程式碼如下所示:

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

Spring Boot Starter Thyme Leaf 依賴項用於建立 Web 應用程式。其程式碼如下所示:

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

Spring Boot Starter Test 依賴項用於編寫測試用例。其程式碼如下所示:

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

自動配置

Spring Boot 自動配置根據您在專案中新增的 JAR 依賴項自動配置您的 Spring 應用程式。例如,如果 MySQL 資料庫位於您的類路徑中,但您尚未配置任何資料庫連線,則 Spring Boot 會自動配置一個記憶體資料庫。

為此,您需要將@EnableAutoConfiguration 註解或@SpringBootApplication 註解新增到您的主類檔案中。然後,您的 Spring Boot 應用程式將自動配置。

觀察以下程式碼以更好地理解:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;

@EnableAutoConfiguration
public class DemoApplication {
   public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
   }
}

Spring Boot 應用程式

Spring Boot 應用程式的入口點是包含@SpringBootApplication 註解的類。此類應具有 main 方法以執行 Spring Boot 應用程式。@SpringBootApplication 註解包括自動配置、元件掃描和 Spring Boot 配置。

如果您將@SpringBootApplication 註解新增到類中,則無需新增@EnableAutoConfiguration、@ComponentScan@SpringBootConfiguration 註解。@SpringBootApplication 註解包含所有其他註解。

觀察以下程式碼以更好地理解:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
   public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
   }
}

元件掃描

Spring Boot 應用程式在應用程式初始化時掃描所有 Bean 和包宣告。您需要將@ComponentScan 註解新增到您的類檔案中以掃描您新增到專案中的元件。

觀察以下程式碼以更好地理解:

import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.ComponentScan;

@ComponentScan
public class DemoApplication {
   public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
   }
}
廣告