Spring Boot快速入門之(一)--- 簡介
【注】本文譯自:https://www.tutorialspoint.com/spring_boot/spring_boot_quick_guide.htm

? ? ??Spring Boot是一個基于Java的開源框架,可用于創(chuàng)建微服務(wù)。 它由Pivotal團隊開發(fā),用來構(gòu)建可在生產(chǎn)環(huán)境獨立運行的spring應(yīng)用。?Spring Boot 包含了全面的支持微服務(wù)開發(fā)的基礎(chǔ)設(shè)施,并且能夠開發(fā)可“即時運行”的企業(yè)級應(yīng)用。
受眾
? ? ? 本教程為Java開發(fā)者而設(shè)計,幫助他們理解如何以最小化配置開發(fā)可用于生產(chǎn)的spring應(yīng)用。本教程揭示了 Spring Boot 的主要特性,譬如:啟動者、自動配置、Bean和 Actuator等。通過本教程,你可以獲得中等水平的 Spring Boot技能。
先決條件
? ? ? 學(xué)習(xí)本教程需要事先有一定的Java、Spring、Maven和Gradle的經(jīng)驗。如果你有這些概念,就可以輕松理解Spring Boot的相關(guān)概念。要是你擁有RESTful Web 服務(wù)的編寫經(jīng)驗,那會更有優(yōu)勢。如果你是一位初學(xué)者,建議你在開始學(xué)習(xí)Spring Boot之前要先對這些方面的知識有所了解。?
Spring Boot --- 簡介
? ? ? ?本文將帶你熟悉Spring Boot及其基本概念。
什么是微服務(wù)?
? ? ? 微服務(wù)是一個體系結(jié)構(gòu),允許開發(fā)者獨立開發(fā)和部署服務(wù)。每個服務(wù)都有其獨立的運行進程,并且以輕量機制通信支持業(yè)務(wù)應(yīng)用。
優(yōu)勢
? ? ?對于開發(fā)者而言,微服務(wù)有以下優(yōu)勢:
易于部署
便于擴展
與容器兼容
最小化配置
縮短生產(chǎn)時間
什么是Spring Boot?
? ? ? Spring Boot為Java開發(fā)者提供了一個優(yōu)秀的平臺,可用于開發(fā)獨立運行的生產(chǎn)級spring應(yīng)用,并且能夠即時運行(just run)。你毋須熟悉整個spring配置,只需以最小化的配置進行開發(fā)。
優(yōu)勢
? ? ? Spring Boot為開發(fā)者提供了以下優(yōu)勢:
易于理解和開發(fā)spring應(yīng)用
提高生產(chǎn)效率
減少開發(fā)時間
目標
? ? ?Spring Boot的設(shè)計目標如下:
避免spring復(fù)雜的XML配置
以便捷的方式開發(fā)生產(chǎn)級的Spring應(yīng)用
減少開發(fā)和獨立運行的時間
提供啟動應(yīng)用的便捷方式
為什么要用Spring Boot?
? ? ? 之所以要選擇Spring Boot,是因為它能夠提供以下特性和利益:
提供了靈活的方式來配置Java Beans、XML配置和數(shù)據(jù)庫事務(wù)
提供了強大的批處理、管理REST端點
在Spring Boot中,一切皆為自動配置,毋須手工配置
提供了基于注解的spring應(yīng)用
便捷的依賴管理
引入了嵌入式Servlet容器
工作原理
? ? ??Spring Boot?使用@EnableAutoConfiguration注解可自動配置應(yīng)用。
? ? ? Spring boot 應(yīng)用的入口點是包含@SpringBootApplication?的類和其main方法。
? ? ? Spring Boot?使用@ComponentScan注解自動掃描項目中包含的所有組件。
Spring Boot啟動器(Starters)
? ? ? 對于大型項目而言,依賴管理是一項艱巨的任務(wù)。Spring Boot通過為開發(fā)者提供一系列便捷的依賴來解決這個難題。比如:要想使用Spring和JPA進行數(shù)據(jù)庫訪問,你只要在項目里引入?spring-boot-starter-data-jpa?就可以了。
? ? 要注意所有的Spring Boot啟動器都有相同的命名范式spring-boot-starter- *,這里 * 指示它是某種的類型類型。
示例
? ? 看看下面解釋可以對 Spring Boot 啟動器有更好的理解:
? ? Spring Boot Starter Actuator dependency?用于監(jiān)控和管理你的應(yīng)用。代碼如下:
<dependency>
?? <groupId>org.springframework.boot</groupId>
?? <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
? ? Spring Boot Starter Security dependency?用于 Spring 安全。代碼如下:
<dependency>
?? <groupId>org.springframework.boot</groupId>
?? <artifactId>spring-boot-starter-security</artifactId>
</dependency>
? ? Spring Boot Starter web dependency?用于編寫Rest 端點。代碼如下:
<dependency>
?? <groupId>org.springframework.boot</groupId>
?? <artifactId>spring-boot-starter-web</artifactId>
</dependency>
? ? Spring Boot Starter Thyme Leaf dependency?用于創(chuàng)建 web 應(yīng)用。代碼如下:
<dependency>
?? <groupId>org.springframework.boot</groupId>
?? <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
? ? Spring Boot Starter Test dependency?用于編寫測試案例。代碼如下:
<dependency>
?? <groupId>org.springframework.boot</groupId>
?? <artifactId>spring-boot-starter-test</artifactId>
</dependency>
自動配置
? ? ? Spring Boot自動配置通過在項目中添加JAR依賴來自動化配置Spring應(yīng)用。例如:如果你的classpath里包含?MySQL 數(shù)據(jù)庫,即使沒有配置任何數(shù)據(jù)庫連接Spring Boot也會自動配置一個內(nèi)存數(shù)據(jù)庫。
? ? ?出于這個目的,要在主類文件加上?@EnableAutoConfiguration?注解或者?@SpringBootApplication?注解。那么,你的 Spring Boot 應(yīng)用將會被自動配置。
? ? ? 看下面的代碼會更好理解:
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 應(yīng)用
? ? Spring Boot 應(yīng)用的入口點是包含?@SpringBootApplication?的類。這個類應(yīng)當(dāng)有運行Spring Boot應(yīng)用的主方法。@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);
?? }
}
組件掃描
? ? 當(dāng)應(yīng)用初始化時,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);
?? }
}