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](https://github.com/EnableAutoConfiguration "@EnableAutoConfiguration")批註添加到項目中的依賴項自動配置應用程序。 例如,如果MySQL數據庫在類路徑上,但尚未配置任何數據庫連接,則Spring Boot會自動配置內存數據庫。

spring boot應用程序的入口點是包含[@SpringBootApplication](https://github.com/SpringBootApplication "@SpringBootApplication")註釋和main方法的類。
Spring Boot使用[@ComponentScan](https://github.com/ComponentScan "@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](https://github.com/EnableAutoConfiguration "@EnableAutoConfiguration")批註或[@SpringBootApplication](https://github.com/SpringBootApplication "@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](https://github.com/SpringBootApplication "@SpringBootApplication")註釋的類。該類應具有運行Spring Boot應用程序的主要方法。 [@SpringBootApplication](https://github.com/SpringBootApplication "@SpringBootApplication")註釋包括自動配置,組件掃描和Spring Boot配置。

如果將[@SpringBootApplication](https://github.com/SpringBootApplication "@SpringBootApplication")批註添加到類中,則無需添加[@EnableAutoConfiguration](https://github.com/EnableAutoConfiguration "@EnableAutoConfiguration")[@ComponentScan](https://github.com/ComponentScan "@ComponentScan")[@SpringBootConfiguration](https://github.com/SpringBootConfiguration "@SpringBootConfiguration")批註。[@SpringBootApplication](https://github.com/SpringBootApplication "@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](https://github.com/ComponentScan "@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);
   }
}