其他教程
Spring Boot 配置-Spring Boot教程深入淺出系列
自定義 Jackson ObjectMapper-Spring Boot教程深入淺出系列
Spring Boot Actuator 介紹-Spring Boot教程深入淺出系列
Spring Boot 是一個基於 Java 的開源框架,用於創建微服務。它由 Pivotal Team 開發,用於構建獨立和生產就緒的 Spring 應用程序。本章將向您介紹 Spring Boot 並熟悉其基本概念。
什么是微服務?
微服務是一種允許開發人員獨立開發和部署服務的架構。每個運行的服務都有自己的流程,這就實現了支持業務應用的輕量級模型。
優點
微服務為其開發人員提供以下優勢 -
- 輕松部署
- 簡單的可擴展性
- 與容器兼容
- 最低配置
- 更少的生產時間
什么是 Spring Boot?
Spring Boot 為 Java 開發人員提供了一個很好的平台來開發一個可以運行的獨立和生產級的 spring 應用程序。您可以從最少的配置開始,而無需整個 Spring 配置設置。
優點
Spring Boot 為其開發人員提供以下優勢 -
- 易於理解和開發彈簧應用
- 提高生產力
- 縮短開發時間
目標
Spring Boot 的設計目標如下 -
- 避免 Spring 中復雜的 XML 配置
- 以更簡單的方式開發生產就緒的 Spring 應用程序
- 減少開發時間並獨立運行應用程序
- 提供更簡單的應用程序入門方法
為什么選擇 Spring Boot?
您可以選擇 Spring Boot,因為它提供了這里給出的特性和好處 -
-
它提供了一種靈活的方式來配置 Java Bean、XML 配置和數據庫事務。
-
它提供了強大的批處理功能並管理 REST 端點。
-
在 Spring Boot 中,一切都是自動配置的;無需手動配置。
-
它提供基於注釋的彈簧應用程序
-
簡化依賴管理
-
它包括嵌入式 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 starter 都遵循相同的命名模式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 Endpoints。它的代碼如下所示 -
<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 應用程序的 main 方法。@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); } }