Spring Boot教學
Spring Boot是什麼?
Spring Boot簡介
Spring Boot主要目標
Spring Boot快速入門
新項目爲什麼需要Spring Boot?
Spring Boot引導過程
Spring Boot核心和限制
Spring Boot Tomcat部署
Spring Boot優點和缺點
Spring Boot構建系統
Spring Boot入門
Spring Boot代碼結構
Spring Boot安裝
Spring Boot Bean和依賴注入
Spring Boot應用程序開發入門
Spring Boot運行器(Runner)
Spring Boot JSP應用實例
Spring Boot應用程序屬性
Spring Boot將WAR文件部署到Tomcat
Spring Boot日誌
Spring Boot Hello World(Thymeleaf)示例
Spring Boot構建RESTful Web服務
Spring Boot非web應用程序實例
Spring Boot異常處理
Spring Boot @ConfigurationProperties實例
Spring Boot攔截器
Spring Boot SLF4J日誌實例
Spring Boot Servlet過濾器
Spring Boot Ajax實例
Spring Boot Tomcat端口號
Spring Boot文件上傳示例(Ajax和REST)
Spring Boot Rest模板
Spring Boot文件上傳示例
Spring Boot文件處理
Spring Boot服務組件
Spring Boot Thymeleaf示例
Spring Boot使用RESTful Web服務
Spring Boot CORS支持
Spring Boot國際化
Spring Boot調度
Spring Boot啓用HTTPS
Spring Boot Eureka服務器
Spring Boost Eureka服務註冊
Spring Boot Zuul代理服務器和路由
Spring Boot雲配置服務器
Spring Boot雲配置客戶端
Spring Boot Actuator
Spring Boot管理服務器
Spring Boot管理客戶端
Spring Boot啓用Swagger2
Spring Boot創建Docker鏡像
Spring Boot跟蹤微服務日誌
Spring Boot Flyway數據庫
Spring Boot發送電子郵件
Spring Boot Hystrix
Spring Boot Web Socket
Spring Boot批量服務
Spring Boot Apache Kafka
Spring Boot單元測試用例
Spring Boot Rest控制器單元測試
Spring Boot數據庫源(連接數據庫)
Spring Boot保護Web應用程序

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