Spring Boot簡介


Spring Boot是一個基於Java的開源框架,用於建立微服務。它由Pivotal Team開發,用於構建獨立的生產就緒Spring應用。 本章將介紹Spring Boot,並熟悉基本概念。

微服務是什麼?

微服務(Micro Service)是一種允許開發人員獨立開發和部署服務的體系結構。每個執行的服務都有自己的流程,這實現了輕量級模型以支援業務應用程式。

優點

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

  • 易於部署
  • 簡單的可延伸性
  • 與容器相容
  • 最低組態
  • 生產時間較短

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是如何工作的?

Spring Boot會根據使用@EnableAutoConfiguration批注新增到專案中的依賴項自動組態應用程式。 例如,如果MySQL資料庫在類路徑上,但尚未組態任何資料庫連線,則Spring Boot會自動組態記憶體資料庫。

spring boot應用程式的入口點是包含@SpringBootApplication注釋和main方法的類。
Spring Boot使用@ComponentScan注釋自動掃描專案中包含的所有元件。

Spring Boot Starters

處理依賴管理對於大專案來說是一項艱鉅的任務。 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 Auto Configuration會根據在專案中新增的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 Application的入口點是包含@SpringBootApplication注釋的類。該類應具有執行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);
   }
}