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);
}
}